當前位置:首頁 » 安卓系統 » androidselector點擊

androidselector點擊

發布時間: 2023-11-01 09:53:48

Ⅰ Android中selector使用詳解

選擇器在android中使用的非常廣泛,點擊反饋、選中、使能、聚焦等狀態切換都會用到選擇器。
一:下面是一個簡單的選擇器:

android:enterFadeDuration="200" 、android:exitFadeDuration="200":進入新狀態或退出舊狀態時會有一個200毫秒的漸變動畫。這兩個屬性使用的比較常見,可以使選擇器的狀態切換更加平滑。

以下幾個都是Drawable的屬性。
android:autoMirrored="true"對應drawable.setAutoMirrored(),這個屬性表示是否將drawable鏡像顯示,只有在從右往左布局的環境下才會生效。將此屬性設置成true,並將語言調節成阿拉伯語便可以看到效果。
android:dither="true"對應drawable.setDither(),這個屬性表示是否對圖像進行抖動處理。當圖像的bit-color較少時,通過顏色值的抖動來增加可用顏色數量,並保持較好的顯示效果。
android:visible="true" 對應drawable.setVisible(),設置Drawable是否可見,一般不會影響Drawable的行為,但是它是Drawable是否運行了動畫的一個暗示。例如:AnimationDrawable可以通過這個方法啟動或者停止動畫。

剩下兩個屬性對應DrawableContainer$DrawableContainerState裡面的屬性(DrawableContainer是Drawable的一個子類,DrawableContainerState是DrawableContainer的內部類)。
android:constantSize="true":當選擇器各個狀態的圖片大小不一時,設置為 true表示以最大的圖片的尺寸顯示,設置為false以默認的圖片的尺寸顯示(控制項大小會對現象有影響,需要是包裹內容的)。
android:variablePadding="false" :默認為false,這個屬性意義不大,通常不去設置。

二:Item的各種狀態,理解起來相對簡單,都可以從屬性的名字去理解其含義,例如:

狀態為加速的時候會顯示ic_launcher_m圖片,那麼是什麼加速呢?這就需要自己去分析一下,其實這里指的加速是對View的軟體加速或硬體加速。

當給View設置background、foreground或ImageView設置src時只能寫android:drawable="id":

當給文字顏色添加選擇器的時候必須要寫android:color="ARGB|RGB顏色值"

三:注意安卓程序在讀取選擇器文件時,是從上往下一個一個節點進行遍歷的,程序會選擇符合當前控制項狀態的第一個Item的內容。如果一個Item不寫任何狀態,表示它任何狀態都符合, 所以一般最後一個Item是不會寫任何狀態的(就像if(){}else if(){}else{}語句一樣,最後一個包含了剩下的所有情況)。

四:選擇器的Item和animated-rotate一起使用。

五:動態創建選擇器
動態創建一個簡單的選擇器:

用一張圖片,通過對圖片的著色創建選擇器:

創建矢量圖選擇器:

TextView文字顏色選擇器:

部分常用狀態數組:

Ⅱ android怎麼去掉控制項點擊效果

在Android開發中,是不能取消點擊效果的,但是在開發中要給ListView取消點擊效果是設置點擊後的效果為透明色,這樣就可以認為是取消了點擊效果,設置方法如下:
1、首先使用Android studio創建一個Android項目,如下圖:

2、打開該項目的布局文件,如下圖所示:

3、添加一個ListView控制項,並設置其寬高,如下圖:

4、添加android:listSelector="@android:color/transparent",@android:color/transparent表示為android源碼中自定義的顏色,顏色為透明色

Ⅲ android如何利用selector實現imageview默認是灰色,被點擊後變成藍色,並保持是藍色

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/appreciate_challenge_select" /> <!-- pressed -->
<item android:drawable="@drawable/appreciate_challenge_default" /> <!-- default -->
</selector>

保持想要保持一個顏色可以在點擊後設置

Ⅳ Android ListView怎麼取消點擊效果

listview的默認樣式每個item都會有個選擇器(selector),要取消點擊效果就要替換掉這個默認的選擇器,使用listview.setSelector(new ColorDrawable(Color.TRANSPARENT))將選擇器替換成透明的drawable,點擊就不會有高亮的效果了。或者你想自定義一種點擊效果,那就定義好自己selector文件,然後在代碼中用setSelector或者在布局中ListView上用android:listSelector屬性來指定成自己的selector。PS:setSelector(null)是沒用的,還會有默認的點擊效果。

Ⅳ android,button數組可以定義點擊事件嗎每個都寫一遍好麻煩啊,

我們在界面上經常會用到button按鈕,但通常button點擊後看不到點擊的效果,如果用戶連續點擊了兩次,就會報NAR錯誤,這樣交互性就比較差了。如果我們自定義了button點擊效果,比如我們點擊了button能讓我們看到我們確實點擊了button按鈕,這樣就會有效的避免重復點擊了。
自定義點擊效果有兩種方式,一種是在xml中定義,另一種是在代碼中定義。
首先看一下如何在xml中定義:
在drawable下新建selector.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/button_press" android:state_pressed="true"/>
<item android:drawable="@drawable/button_nomal" android:state_focused="false" android:state_pressed="false"/>
<item android:drawable="@drawable/button_focus" android:state_focused="true"/>
<item android:drawable="@drawable/button_nomal" android:state_focused="false"/>

</selector>

定義了兩種狀態 一種是按下 一種是獲得焦點。 drawable分別引用了這三張圖片

然後在main.xml下添加button按鈕
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button效果演示"
android:background="@drawable/selector" />

在MainActivtiy中得到button

Button button1=(Button) this.findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "你點擊了button按鈕", Toast.LENGTH_SHORT).show();
}
});

下面看下點擊效果:

點擊button前:

當按下button按鈕時:

接下來 看下第二種實現方式,在代碼中實現:
首先在main.xml中添加:
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button效果演示"
android:background="@drawable/button_nomal"/>

接下面在MainActivity中實現:

Button button2=(Button) this.findViewById(R.id.button2);
button2.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction()==MotionEvent.ACTION_DOWN){
v.setBackgroundResource(R.drawable.button_press);
}else if(event.getAction()==MotionEvent.ACTION_UP){
v.setBackgroundResource(R.drawable.button_nomal);
}
return false;
}
});

在這類綁定了button的OnTouchListener監聽,因為OnClickListener繼承了OnTouchListener。運行效果和上面一樣,這里不做過多解釋。

熱點內容
sqlce資料庫 發布:2024-11-30 07:41:21 瀏覽:725
奇瑞5x配置如何 發布:2024-11-30 07:39:50 瀏覽:641
魔域資料庫修改 發布:2024-11-30 07:37:10 瀏覽:130
c語言開發者 發布:2024-11-30 07:30:34 瀏覽:387
西門子觸摸屏字體無法編譯 發布:2024-11-30 07:26:13 瀏覽:301
雲伺服器低 發布:2024-11-30 07:24:47 瀏覽:300
這首歌密碼是多少 發布:2024-11-30 07:19:35 瀏覽:523
c語言數組最大長度 發布:2024-11-30 07:16:51 瀏覽:367
在線編程刷題 發布:2024-11-30 07:15:17 瀏覽:72
監控管理伺服器有什麼要求 發布:2024-11-30 07:09:46 瀏覽:172