91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android statelistdrawable如何創建和使用

小樊
96
2024-08-27 19:19:17
欄目: 編程語言

在Android中,StateListDrawable是一種可以根據控件狀態(例如按下、獲取焦點等)自動切換圖片的Drawable

  1. 首先,在res/drawable目錄下為每個狀態創建一個圖片文件。例如,我們創建三個不同的圖片:button_normal.png(正常狀態),button_pressed.png(按下狀態)和button_focused.png(獲取焦點狀態)。

  2. 接下來,在res/drawable目錄下創建一個XML文件,例如button_state_list.xml。在這個文件中,定義一個selector元素,并為每個狀態指定相應的圖片。例如:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_pressed" android:state_pressed="true" />
    <item android:drawable="@drawable/button_focused" android:state_focused="true" />
    <item android:drawable="@drawable/button_normal" />
</selector>

這里,我們為按下狀態指定了button_pressed.png圖片,為獲取焦點狀態指定了button_focused.png圖片,而正常狀態則使用button_normal.png圖片。

  1. 最后,在布局文件或代碼中使用這個StateListDrawable。例如,在布局文件中,將Button的android:background屬性設置為剛才創建的button_state_list.xml
    android:id="@+id/my_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click me!"
    android:background="@drawable/button_state_list" />

現在,當用戶與這個按鈕交互時,它會根據不同的狀態顯示相應的圖片。

如果你想在代碼中創建和使用StateListDrawable,可以使用以下方法:

StateListDrawable stateListDrawable = new StateListDrawable();
stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, getResources().getDrawable(R.drawable.button_pressed));
stateListDrawable.addState(new int[]{android.R.attr.state_focused}, getResources().getDrawable(R.drawable.button_focused));
stateListDrawable.addState(new int[]{}, getResources().getDrawable(R.drawable.button_normal));

Button myButton = findViewById(R.id.my_button);
myButton.setBackground(stateListDrawable);

這段代碼首先創建了一個StateListDrawable對象,然后為每個狀態添加了相應的圖片。最后,將StateListDrawable設置為按鈕的背景。

0
福安市| 科技| 兴安盟| 宜兰县| 无为县| 聂荣县| 宝应县| 通城县| 丁青县| 昭平县| 任丘市| 宁海县| 门源| 濮阳市| 聊城市| 赤峰市| 内丘县| 扎囊县| 邹平县| 噶尔县| 安陆市| 南京市| 正蓝旗| 广丰县| 永济市| 合肥市| 漾濞| 缙云县| 小金县| 阜新市| 札达县| 普兰县| 平和县| 荔浦县| 聂拉木县| 稷山县| 瑞安市| 鸡西市| 济阳县| 滦南县| 大兴区|