您好我想自定义屏幕上绘制默认EditText的方式,我有这个代码
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape android:shape="rectangle">
<solid
android:color="#00ff00" />
<stroke
android:width="5dp"
android:color="#ff0000"
android:dashWidth="3dp"
android:dashGap="2dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:endColor="#8dc73f"
android:centerColor="#d4d4d4"
android:startColor="#d4d4d4"
android:centerX="0.5"
android:centerY="0.5"
android:angle="270" />
<stroke
android:width="1dp"
color="#8dc73f" />
<corners
android:radius="6dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:endColor="#d4d4d4"
android:centerColor="#d4d4d4"
android:startColor="#d4d4d4"
android:angle="270" />
<stroke
android:width="1dp"
color="#00ff00" />
<corners
android:radius="7dp" />
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
哪个工作正常但问题是在聚焦状态下我想应用EditText的效果并且注意里面,就像应用默认的android效果一样,这是可能的,因为我没有找到解决方案,上面的代码只在EditText中应用效果.
小智 31
您可以通过在"Drawable"文件夹中创建XML文件并在代码中提及您希望它的外观来自定义绘制默认EditText的方式.样品如下:
<selector><item android:state_pressed="true">
<shape android:shape="rectangle">
<gradient android:startColor="#40FFE600"
android:centerColor="#60FFE600" android:endColor="#90FFE600"
android:angle="270" android:centerX="0.5" android:centerY="0.5" />
<stroke android:width="5dp" android:color="#50FF00DE" />
<corners android:radius="7dp" />
<padding android:left="10dp" android:top="6dp" android:right="10dp"
android:bottom="6dp" />
</shape>
</item>
<item android:state_focused="true">
<shape>
<gradient android:startColor="#40CB1759"
android:centerColor="#60CB1759" android:endColor="#90CB1759"
android:angle="270" android:centerX="0.5" android:centerY="0.5" />
<stroke android:width="5dp" android:color="#50ff0000" />
<corners android:radius="7dp" />
<padding android:left="10dp" android:top="6dp" android:right="10dp"
android:bottom="6dp" />
</shape>
</item>
<item>
<shape>
<gradient android:startColor="#402168D2"
android:centerColor="#602168D2" android:endColor="#902168D2"
android:angle="270" android:centerX="0.5" android:centerY="0.5" />
<stroke android:width="5dp" android:color="#50ff0000" />
<corners android:radius="7dp" />
<padding android:left="10dp" android:top="6dp" android:right="10dp"
android:bottom="6dp" />
</shape>
</item></selector>
Run Code Online (Sandbox Code Playgroud)
要应用自定义drawable xml,请使用EditText的android:backgroung attibute
例如 android:background="@drawable/yourXml"
您检查过记事本示例吗?他们有一个自定义的 TextEdit 类,可以在每行文本之间画一条线:
你能以同样的方式重写 onDraw() 来完成你想要的事情吗?
| 归档时间: |
|
| 查看次数: |
29567 次 |
| 最近记录: |