1.新建一个radius_border.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF" /><!--solid 背景填充颜色 --> <stroke android:width="1dip" android:color="#aea594" /><!-- 描边,边框宽度、颜色 --> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" /><!-- 边角圆弧的半径 --> <padding android:left="3dp" android:top="3dp" android:right="3dp" android:bottom="3dp" /><!-- 四周留出来的空白 --> </shape>
在项目中我们可能边框只需要加一边的办法
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="-2dp" android:right="-2dp" android:top="-2dp"> <shape> <solid android:color="#ffffff"/> <stroke android:width="1dp" android:color="#ff0000"/> </shape> </item> </layer-list>
2.在代码中添加一句:
TextView.setBackgroundResource(R.drawable.radius_border);
这里可能回报一句错误element shape doesn't required attribute android:layout_height
解决方法:
把
radius_border.xml移动到drawable中即可
3.button根据焦点改变北京图片
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <!--android:drawable="@drawable/ic_launcher"--> <item android:state_pressed="true" > <shape> <solid android:color="#ff1234" ></solid> <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" /> </shape> </item> <!--android:state_focused是获得焦点android:state_pressed是点击--> <item android:state_focused="true" android:drawable="@drawable/ic_launcher" > <shape> <solid android:color="#ffaeff5d"></solid> <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" /> </shape> </item> <item> <shape> <solid android:color="@color/colorNav"></solid> <corners android:topLeftRadius="5dp" android:topRightRadius="5dp" android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" /> </shape> </item> </selector>