android vector设置颜色,Android: How to set stroke color for vector drawable programmatically

I am getting into a trouble with VectorDrawable in Android.

I have a vector drawable file (.xml) and I want to draw it on bitmap. I managed to load this file and draw it on bitmap. I can change its fill color but the problem is that I cannot change its stroke and color.

Any helps would be appreciated!!!

Thank you!

Here is the drawable file:

android:width="312dp"

android:height="312dp"

android:viewportWidth="312.7"

android:viewportHeight="312.699">

android:pathData="M306.35,266.34c0,22.09 -17.91,40.01 -40,40.01L46.35,306.35c-22.09,0 -40,-17.92 -40,-40.01v-219.99c0,-22.11 17.92,-40 40,-40h220c22.09,0 40,17.9 40,40L306.35,266.34z"

android:strokeWidth="5"

android:fillColor="@color/transparent"

android:strokeColor="#231F20"/>

Here is the way I load and fill the shape with blue color:

Drawable drawable = getResources().getDrawable(R.drawable.graph_rounded_rectangle);

drawable.setBounds(0, 0, width, height);

drawable.setColorFilter(new PorterDuffColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY));

drawable.draw(canvas);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以通过设置Button的selector来实现点击按钮时背景颜色变浅的效果。可以创建一个selector.xml文件,放在drawable目录下,并在Button的background属性中引用。以下是一个示例: 1. 在drawable目录下创建selector.xml文件,代码如下: ``` <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/button_pressed_color" /> <item android:drawable="@color/button_default_color" /> </selector> ``` 2. 在colors.xml文件中定义按钮默认状态和按下状态的颜色: ``` <color name="button_default_color">#FF4081</color> <color name="button_pressed_color">#FF80AB</color> ``` 3. 在Button的布局文件中引用selector.xml: ``` <Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/selector" /> ``` 这样,当用户点击按钮时,按钮的背景颜色会变成button_pressed_color定义的颜色。当用户释放按钮时,背景颜色会恢复成button_default_color定义的颜色。 ### 回答2: 要在Android Studio中设置点击按钮时背景颜色变浅,可以通过使用Selector和Shape来实现。 首先,在res目录下创建一个drawable文件夹,然后在该文件夹下创建一个new.xml文件。在new.xml文件中添加以下代码: ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#D3D3D3" /> //设置点击时的背景颜色为浅灰色 </shape> </item> <item> <shape android:shape="rectangle"> <solid android:color="#FFFFFF" /> //设置默认背景颜色为白色 </shape> </item> </selector> ``` 然后,在布局文件中使用这个selector作为按钮的背景。在布局文件中找到需要设置点击背景颜色的按钮,例如: ```xml <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击我" android:background="@drawable/new" /> ``` 其中,android:background="@drawable/new"表示使用刚才创建的new.xml文件作为按钮的背景。 这样,当按钮被点击时,背景颜色就会变为浅灰色,当按钮没有被点击时,背景颜色就会恢复为白色。你也可以根据需要修改selector中的颜色值,来实现你想要的效果。 ### 回答3: 在Android Studio中设置按钮点击时背景颜色变浅可以通过以下步骤实现: 1. 在res目录下的drawable文件夹中创建一个XML文件,例如button_click_bg.xml。 2. 在button_click_bg.xml文件中添加一个shape标签,并设置shape的形状、圆角、边框和填充颜色等属性。例如: ```xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="8dp" /> <solid android:color="#ECECEC" /> <stroke android:width="1dp" android:color="#808080" /> </shape> ``` 这里的#ECECEC是正常背景颜色,#808080是边框颜色。 3. 在res目录下的drawable文件夹中创建另一个XML文件,例如button_click_selector.xml。 4. 在button_click_selector.xml文件中添加一个selector标签,并设置按钮的不同状态下的背景颜色。例如: ```xml <?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/button_click_bg" /> <item android:state_focused="true" android:drawable="@drawable/button_click_bg" /> <item android:drawable="@drawable/button_default_bg" /> </selector> ``` 这里的button_click_bg是上一步创建的XML文件的名称,button_default_bg是按钮正常状态下的背景颜色。 5. 在布局文件中将按钮的背景颜色设置为button_click_selector.xml文件。例如: ```xml <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me" android:background="@drawable/button_click_selector" /> ``` 这样,当用户点击按钮时,按钮的背景颜色会变为较浅的颜色,从而实现背景颜色变浅的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值