我可以覆盖可绘制形状的某些属性吗?

我可以覆盖可绘制形状的某些属性吗?,第1张

概述我有两个按钮,它们是相同的形状,只是颜色不同b1.xml<?xmlversion="1.0"encoding="utf-8"?><shapexmlns:android="http://schemas.android.com/apkes/android"android:shape="rectangle"><cornersandroid:radius=&quot

我有两个按钮,它们是相同的形状,只是颜色不同

b1.xml

<?xml version="1.0" enCoding="utf-8"?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:shape="rectangle">    <corners androID:radius="10dp" />    <stroke androID:wIDth="5px" androID:color="#000000" />    <solID        androID:color="#ff0000"/></shape>

b2.xml

<?xml version="1.0" enCoding="utf-8"?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:shape="rectangle">    <corners androID:radius="10dp" />    <stroke androID:wIDth="5px" androID:color="#000000" />    <solID        androID:color="#00ff00"/></shape>

layout.xml

<button    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:background="@drawable/b1"    androID:text="B1" /><button    androID:layout_wIDth="match_parent"    androID:layout_height="wrap_content"    androID:background="@drawable/b2"    androID:text="B2" />

如果要创建具有不同颜色的100个按钮,则需要创建100个可绘制xml.

我只能创建一个可绘制的xml,然后覆盖布局xml中的颜色或其他属性吗?

解决方法:

通过XML,不行.如果需要动态处理,XML是固定元素,请使用Java.

在您的特定情况下,您可以尝试使用Drawable paint和colorFilter来实现所需的功能,例如:

button b1 = (button) findVIEwByID(R.ID.button1);ShapeDrawable sd = (ShapeDrawable) b1.getBackground();sb.getPaint().setcolor(color);sb.setcolorFilter(... something);
总结

以上是内存溢出为你收集整理的我可以覆盖可绘制形状的某些属性吗?全部内容,希望文章能够帮你解决我可以覆盖可绘制形状的某些属性吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1079817.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存