亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

android statelistdrawable在代碼中的動態設置

小樊
98
2024-08-27 19:31:16
欄目: 編程語言

在Android中,StateListDrawable 是一個用于根據狀態(如按下、選中等)動態改變圖像的 Drawable。要在代碼中動態設置 StateListDrawable,請遵循以下步驟:

  1. 創建一個 StateListDrawable 對象。
  2. 為不同的狀態添加相應的 Drawable。
  3. 將 StateListDrawable 設置為視圖的背景或圖像。

以下是一個簡單的示例,展示了如何在代碼中動態設置 StateListDrawable

import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.StateListDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = findViewById(R.id.button);

        // 創建一個 StateListDrawable 對象
        StateListDrawable stateListDrawable = new StateListDrawable();

        // 創建一個 Drawable 對象,表示按下狀態的背景
        GradientDrawable pressedDrawable = new GradientDrawable();
        pressedDrawable.setColor(ContextCompat.getColor(this, R.color.pressed_color));

        // 創建一個 Drawable 對象,表示默認狀態的背景
        GradientDrawable defaultDrawable = new GradientDrawable();
        defaultDrawable.setColor(ContextCompat.getColor(this, R.color.default_color));

        // 為不同的狀態添加相應的 Drawable
        int[] pressedState = {android.R.attr.state_pressed};
        stateListDrawable.addState(pressedState, pressedDrawable);
        stateListDrawable.addState(new int[]{}, defaultDrawable);

        // 將 StateListDrawable 設置為按鈕的背景
        button.setBackground(stateListDrawable);
    }
}

在這個示例中,我們首先創建了一個 StateListDrawable 對象。然后,我們創建了兩個 GradientDrawable 對象,分別表示按下狀態和默認狀態的背景。接下來,我們使用 addState() 方法為不同的狀態添加相應的 Drawable。最后,我們將 StateListDrawable 設置為按鈕的背景。

注意:在實際項目中,你可能需要根據需求調整示例代碼。

0
横峰县| 塔河县| 定兴县| 绿春县| 清水县| 瓦房店市| 顺平县| 宝山区| 军事| 新兴县| 漳平市| 中宁县| 丹江口市| 平度市| 镇康县| 南乐县| 廊坊市| 江口县| 石河子市| 汝阳县| 比如县| 股票| 青冈县| 吉安县| 祁阳县| 伊川县| 龙陵县| 平凉市| 易门县| 华坪县| 临潭县| 德安县| 绍兴县| 巴马| 观塘区| 河曲县| 罗山县| 万年县| 庆云县| 故城县| 改则县|