是否可以在 android 按钮中指定边框并保持其背景?
Is it possible to specify border in android button with keeping its background?
是否可以在 Activity 的 android 按钮中指定边框?
我想要保留按钮 png
背景并为其添加指定边框并删除它或动态更改其颜色。
拼图板由几个按钮组成,以便选择,如果选择不正确则带红色边框。
使用 ImageButton
:将您的 png 图像用作 android:src
并为背景边框添加可绘制对象 xml 。
<ImageButton
android:id="@+id/button"
android:layout_width="75dp"
android:layout_height="70dp"
android:background="@drawable/border"
android:padding="15dp"
android:scaleType="fitCenter"
android:src="@drawable/your_image" />
在res/drawable/border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/transparent" />
<stroke
android:width="3dp"
android:color="@color/stroke_color"></stroke>
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>
要以编程方式更改形状边框颜色,请使用:
ImageButton button = (ImageButton) findViewById(R.id.button);
GradientDrawable backgroundGradient = (GradientDrawable) button.getBackground();
backgroundGradient.setStroke(5, Color.RED); // set stroke width and stroke color
是否可以在 Activity 的 android 按钮中指定边框?
我想要保留按钮 png
背景并为其添加指定边框并删除它或动态更改其颜色。
拼图板由几个按钮组成,以便选择,如果选择不正确则带红色边框。
使用 ImageButton
:将您的 png 图像用作 android:src
并为背景边框添加可绘制对象 xml 。
<ImageButton
android:id="@+id/button"
android:layout_width="75dp"
android:layout_height="70dp"
android:background="@drawable/border"
android:padding="15dp"
android:scaleType="fitCenter"
android:src="@drawable/your_image" />
在res/drawable/border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/transparent" />
<stroke
android:width="3dp"
android:color="@color/stroke_color"></stroke>
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>
要以编程方式更改形状边框颜色,请使用:
ImageButton button = (ImageButton) findViewById(R.id.button);
GradientDrawable backgroundGradient = (GradientDrawable) button.getBackground();
backgroundGradient.setStroke(5, Color.RED); // set stroke width and stroke color