按钮的圆角不起作用
rounded corner for button not working
我正在从服务器获取 颜色代码 #3a87ad
以设置为背景,我还试图为我的按钮提供圆角形状。然而,它始终显示 黑色 作为背景。
tv_img_tag = (Button) vi.findViewById(R.id.tv_img_tag);
tv_img_tag.setBackgroundColor(Color.parseColor(product
.get("stop_status_color")));
tv_img_tag.setBackgroundResource(R.drawable.roundedtexts);
tv_img_tag.setText(product.get("stop_status_name").toString());
roundedtexts.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
<padding
android:left="8dp"
android:top="8dp"
android:right="8dp"
android:bottom="8dp" />
</shape>
你好兄弟试试这个工具,创造精彩android buttons.Tool还提供源代码。 Angry Tools
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="8dp" />
<solid android:color="#54483C" />
<padding
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp" />
</shape>
首先,您的 roundedtexts.xml 在 drawable 中没有定义颜色。
您必须通过设置 <Solid
> 标签的颜色来将一些颜色设置为 xml。
您的 class 文件中的第二个。
您是先设置背景颜色,然后再将可绘制对象设置为背景。所以这里发生的是你最后一次设置背景的调用没有设置颜色。
为此,您必须将 class 中的 xml 可绘制实例放入 gradientDrawable
,然后必须 set your dynamic color to that gradientDrawable instance
并且现在您可以将该实例设置为作为背景查看。
问题是你先设置了颜色,然后设置了可绘制的背景,但是在 roundedtexts.xml 中你没有指定任何颜色,所以它给你黑色背景只是尝试在 roundedtexts.xml 中添加背景颜色像透明颜色的文件。
<?xml version="1.0" encoding="UTF-8"?>
<solid android:color="@android:color/transparent"/>
<corners
android:topLeftRadius="0dp"
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:bottomRightRadius="0dp"/>
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp" />
使用下面的代码
tv_img_tag = (Button) vi.findViewById(R.id.tv_img_tag);
tv_img_tag.setBackgroundResource(R.drawable.roundedtexts);
GradientDrawable sd = (GradientDrawable) tv_img_tag.getBackground().mutate();
sd.setColor(0xff999999);
sd.invalidateSelf();
我正在从服务器获取 颜色代码 #3a87ad
以设置为背景,我还试图为我的按钮提供圆角形状。然而,它始终显示 黑色 作为背景。
tv_img_tag = (Button) vi.findViewById(R.id.tv_img_tag);
tv_img_tag.setBackgroundColor(Color.parseColor(product
.get("stop_status_color")));
tv_img_tag.setBackgroundResource(R.drawable.roundedtexts);
tv_img_tag.setText(product.get("stop_status_name").toString());
roundedtexts.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
<padding
android:left="8dp"
android:top="8dp"
android:right="8dp"
android:bottom="8dp" />
</shape>
你好兄弟试试这个工具,创造精彩android buttons.Tool还提供源代码。 Angry Tools
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="8dp" />
<solid android:color="#54483C" />
<padding
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp" />
</shape>
首先,您的 roundedtexts.xml 在 drawable 中没有定义颜色。
您必须通过设置 <Solid
> 标签的颜色来将一些颜色设置为 xml。
您的 class 文件中的第二个。 您是先设置背景颜色,然后再将可绘制对象设置为背景。所以这里发生的是你最后一次设置背景的调用没有设置颜色。
为此,您必须将 class 中的 xml 可绘制实例放入 gradientDrawable
,然后必须 set your dynamic color to that gradientDrawable instance
并且现在您可以将该实例设置为作为背景查看。
问题是你先设置了颜色,然后设置了可绘制的背景,但是在 roundedtexts.xml 中你没有指定任何颜色,所以它给你黑色背景只是尝试在 roundedtexts.xml 中添加背景颜色像透明颜色的文件。
<?xml version="1.0" encoding="UTF-8"?>
<solid android:color="@android:color/transparent"/>
<corners
android:topLeftRadius="0dp"
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:bottomRightRadius="0dp"/>
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp" />
使用下面的代码
tv_img_tag = (Button) vi.findViewById(R.id.tv_img_tag);
tv_img_tag.setBackgroundResource(R.drawable.roundedtexts);
GradientDrawable sd = (GradientDrawable) tv_img_tag.getBackground().mutate();
sd.setColor(0xff999999);
sd.invalidateSelf();