以编程方式可绘制的选择器

托尔恩·巴特尔

我想以编程方式创建选择器可绘制对象。形状必须采用以下形式:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"><shape>
            <solid android:color="#4aa5d4" />
        </shape></item>
    <item><shape>
            <stroke android:width="1dp" android:color="#4aa5d4" />
        </shape></item>

</selector>

为什么?因为我希望这2种颜色可以改变。我知道我必须为此创建某种Drawable我已经设法这样创建自己的GradientDrawables

public GradientDrawable getBackgroundGradient() {
    GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[] { BACKGROUND_GRADIENT_TOP_COLOR, BACKGROUND_GRADIENT_BOTTOM_COLOR });
    return gd;
}

但是现在我需要一个SelectorDrawable。

托尔恩·巴特尔

好的,这是我使用链接主题想到的。

public StateListDrawable getSelectorDrawable(int color) {
    StateListDrawable out = new StateListDrawable();
    out.addState(new int[] { android.R.attr.state_pressed }, createNormalDrawable(color));
    out.addState(StateSet.WILD_CARD, createStrokeDrawable(color));
    return out;
}

public GradientDrawable createNormalDrawable(int color) {
    GradientDrawable out = new GradientDrawable();
    out.setColor(color);
    return out;
}

public GradientDrawable createStrokeDrawable(int color) {
    GradientDrawable out = new GradientDrawable();
    out.setStroke(1, color);
    return out;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

设置按钮选择器以编程方式发出

来自分类Dev

以编程方式打开角度表带日期选择器

来自分类Dev

以编程方式设置时间选择器值

来自分类Dev

如何以编程方式打开时间选择器

来自分类Dev

以编程方式更改选择器后,该选择器不起作用

来自分类Dev

RelativeLayout可绘制选择器不起作用

来自分类Dev

如何具有矢量可绘制对象的选择器?

来自分类Dev

EditText中可绘制对象的选择器

来自分类Dev

Swift:选择器在以编程方式呈现其视图控制器时抛出错误

来自分类Dev

以编程方式创建可绘制进度

来自分类Dev

以编程方式创建UI元素时,Monomac上的“无法识别的选择器”

来自分类Dev

以编程方式更改日期选择器对话框的背景

来自分类Dev

以编程方式使用日期选择器进行更改时,按钮标题始终会重置

来自分类Dev

如何以编程方式调整日期选择器文本的大小

来自分类Dev

在Xamarin Android上以编程方式打开文件选择器界面

来自分类Dev

以编程方式使用日期选择器进行更改时,按钮标题始终会重置

来自分类Dev

在Material UI库中以编程方式打开日期/时间选择器

来自分类Dev

以编程方式设置颜色选择器设置值时如何避免触发 Onchange 事件

来自分类Dev

如何使textview的左侧可绘制,可以通过服务器提供的网址以编程方式进行设置

来自分类Dev

Android正在加载自定义号码选择器可绘制[内部图像]

来自分类Dev

如何在可绘制形状的XML选择器中制作底部边框?

来自分类Dev

如何在可重复绘制的日期范围选择器之前获取文本标签?

来自分类Dev

如何在 Java 代码中获得可绘制的矢量选择器

来自分类Dev

如何以编程方式绘制特定的可绘制资源?

来自分类Dev

如何以编程方式向 StackView 中的每个按钮添加单独的选择器/侦听器 swift 4.2

来自分类Dev

实现类选择器的最佳方式

来自分类Dev

可缩放比例选择器

来自分类Dev

如何以编程方式将图像上传到umbraco 7后台内容页面中的媒体选择器

来自分类Dev

UITarget上的addTarget以编程方式给我“无法识别的选择器发送给类”

Related 相关文章

  1. 1

    设置按钮选择器以编程方式发出

  2. 2

    以编程方式打开角度表带日期选择器

  3. 3

    以编程方式设置时间选择器值

  4. 4

    如何以编程方式打开时间选择器

  5. 5

    以编程方式更改选择器后,该选择器不起作用

  6. 6

    RelativeLayout可绘制选择器不起作用

  7. 7

    如何具有矢量可绘制对象的选择器?

  8. 8

    EditText中可绘制对象的选择器

  9. 9

    Swift:选择器在以编程方式呈现其视图控制器时抛出错误

  10. 10

    以编程方式创建可绘制进度

  11. 11

    以编程方式创建UI元素时,Monomac上的“无法识别的选择器”

  12. 12

    以编程方式更改日期选择器对话框的背景

  13. 13

    以编程方式使用日期选择器进行更改时,按钮标题始终会重置

  14. 14

    如何以编程方式调整日期选择器文本的大小

  15. 15

    在Xamarin Android上以编程方式打开文件选择器界面

  16. 16

    以编程方式使用日期选择器进行更改时,按钮标题始终会重置

  17. 17

    在Material UI库中以编程方式打开日期/时间选择器

  18. 18

    以编程方式设置颜色选择器设置值时如何避免触发 Onchange 事件

  19. 19

    如何使textview的左侧可绘制,可以通过服务器提供的网址以编程方式进行设置

  20. 20

    Android正在加载自定义号码选择器可绘制[内部图像]

  21. 21

    如何在可绘制形状的XML选择器中制作底部边框?

  22. 22

    如何在可重复绘制的日期范围选择器之前获取文本标签?

  23. 23

    如何在 Java 代码中获得可绘制的矢量选择器

  24. 24

    如何以编程方式绘制特定的可绘制资源?

  25. 25

    如何以编程方式向 StackView 中的每个按钮添加单独的选择器/侦听器 swift 4.2

  26. 26

    实现类选择器的最佳方式

  27. 27

    可缩放比例选择器

  28. 28

    如何以编程方式将图像上传到umbraco 7后台内容页面中的媒体选择器

  29. 29

    UITarget上的addTarget以编程方式给我“无法识别的选择器发送给类”

热门标签

归档