<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1px" android:color="#696969"/>
</shape>
此代码用于动态创建按钮, 问题是我想设置背景颜色并设置背景绘图。
Button btnTag = new Button(alltable.this);
btnTag.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
try {
btnTag.setWidth(130);
btnTag.setBackground(getResources().getDrawable(R.color.blue));
} catch (Exception e){
e.printStackTrace();
}
这是我想要设置btn的背景颜色的类,然后我想使用我的drawable。
答案 0 :(得分:4)
在drawable(如files_bg.xml)文件夹中创建资源,并将其设置为布局的背景。
在图层列表中使用两个项目,一个用于形状的纯色,另一个用于位图。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/totalFilesBgColor" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/bg_icon"
android:tileMode="disabled" />
</item>
</layer-list>
现在将drwable设置为布局或任何地方的bakcground。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/files_bg">
</LinearLayout>
答案 1 :(得分:0)
此文件(rectangle.xml)放在您的drawable文件夹中。
EA.Element.SetAppearance(long Scope, long Item, long Value)
在代码中修改此行。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#FF4081"/>
</shape>
答案 2 :(得分:0)
有点晚了,但是我遇到了同样的问题,我像下面描述的那样解决了它。
首先获取您的可绘制对象:
Drawable d = getResources().getDrawable(R.drawable.shape_rectangle);
然后将您的自定义颜色应用于它:
d.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
然后将其设置为视图/按钮的背景:
btn.setBackground(d);
答案 3 :(得分:0)
您可以创建一个新的可绘制对象,并将其分配给背景。 即
Drawable drawable = new GradientDrawable();
drawable.shape = GradientDrawable.RECTANGLE;
drawable.setStroke(Utils.toPx(1), Color.parseColor("#696969") );
btnTag.setBackground(drawable);
答案 4 :(得分:0)
这对我有用
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/appColor" />
<corners android:radius="@dimen/spacing_small"/>
</shape>
</item>
<item android:drawable="@drawable/add_white"/>
</layer-list>