Ответ 1
Вы проверили образец "Блокнот"? У них есть собственный класс TextEdit, который рисует линию между каждой строкой текста:
Не могли бы вы переопределить onDraw() таким же образом, чтобы делать то, что вы ищете?
Здравствуйте, я хотел бы настроить способ редактирования по умолчанию 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>
который работает отлично, но проблема в том, что в сфокусированном состоянии я хотел бы применить эффект вокруг EditText и отметить внутри, например, применяется эффект андроида по умолчанию, это возможно и потому, что я не нашел решение, приведенный выше код применит только эффект внутри EditText.
Вы проверили образец "Блокнот"? У них есть собственный класс TextEdit, который рисует линию между каждой строкой текста:
Не могли бы вы переопределить onDraw() таким же образом, чтобы делать то, что вы ищете?
Вы можете настроить способ создания по умолчанию EditText, создав файл XML в папке "Drawable" и указав в коде, как вы хотите, чтобы он выглядел. Пример ниже:
<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>
Чтобы применить настраиваемый drawable xml, используйте андроид: backgroung attitute из EditText
Например android:background="@drawable/yourXml"
<solid android:color="#E6E6E6" />
<padding
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp" />
Подробнее см. здесь http://androiddhina.blogspot.in/2015/08/android-example-for-custom-grouped-edittext.html