好日子,的Android创建自定义的UI对象,红色/绿色连接按钮
我想创建一个新的对象,我可以添加到我的Android应用程序查看,
要显示我只是想圆红色或绿色取决于网络是否连接。我想要一个类似于单选按钮的颜色,只是颜色必须改变。
最好只使用图片吗?或者我应该创建一个新的视图对象/组件?如果是这样,我该怎么做呢?
好日子,的Android创建自定义的UI对象,红色/绿色连接按钮
我想创建一个新的对象,我可以添加到我的Android应用程序查看,
要显示我只是想圆红色或绿色取决于网络是否连接。我想要一个类似于单选按钮的颜色,只是颜色必须改变。
最好只使用图片吗?或者我应该创建一个新的视图对象/组件?如果是这样,我该怎么做呢?
一个简单的选项: 您可以使用PNG图像。您需要使用两种颜色的图像。如果你喜欢,你可以从你的PNG创建一个9Patch。 9Patch为您提供可以拉伸以适合的图像。
然后,在您的XML文件中使用可绘制的StateList。 Statelist绘制给你更改图像取决于状态的能力
这是button_statelist.xml在绘制文件夹
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/redbutton" />
<item android:drawable="@drawable/bluebutton" />
</selector>
你可以使用一些其他国家,而不是state_pressed
在布局文件夹,您可以定义按钮:
<Button
android:id="@+id/button1"
android:background="@drawable/button_statelist"
/>
检查了这一点:android - button style
Yout可以将样式应用于您的按钮/ imagebutton/imageview,您可以在其中定义背景的外观和边框半径以获得圆圈。将其作为your_style.xml保存在可绘制文件夹中。代码如下所示:
<shape>
<solid
android:color="#f00" />
<stroke
android:width="1dp"
android:color="#d00" />
<corners
android:radius="40dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
设置形状和背景颜色为android:background="@drawable/your_style"
。如果你想要一个额外的图像(为了获得单选按钮的外观),你只需要添加android:drawableLeft="@drawable/your_overlay_image
。