android - 如何在可绘制对象中添加填充

标签 android android-drawable

我有自定义的 EditText 可绘制:

edit_text_selector

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="true" android:drawable="@drawable/edit_text_background_on" />
    <item android:state_focused="false" android:drawable="@drawable/edit_text_background_off" />

</selector>

edit_text_background_on

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape>
            <solid android:color="@color/main_color" />
        </shape>
    </item>

    <item
        android:bottom="1.5dp"
        android:left="1.5dp"
        android:right="1.5dp">
        <shape>
            <solid android:color="@color/background_color" />
        </shape>
    </item>

    <item 
        android:bottom="5.0dp" >
        <shape>
            <solid android:color="@color/background_color" />
        </shape>
    </item>

</layer-list>

edit_text_background_off

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape>
            <solid android:color="@color/edittext_off_color" />
        </shape>
    </item>

    <item
        android:bottom="1.5dp"
        android:left="1.5dp"
        android:right="1.5dp">
        <shape>
            <solid android:color="@color/background_color" />
        </shape>
    </item>

    <item android:bottom="5.0dp">
        <shape>
            <solid android:color="@color/background_color" />
        </shape>
    </item>

</layer-list>

我想在 EditText 中进行填充,以便文本不在 EditText 的最左侧位置。

尝试使用它但不起作用。

<inset android:insetLeft="6dip"/>

如何在可绘制的 EditText 中添加填充?我不想将它放在我的 XML 布局中的每个 EditText 中。

最佳答案

我找到了这个 .. 希望它能有所帮助。这是逻辑。你需要定制它。 这是主布局,您可以在其中添加 edittext

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#eee">

    <!-- Input Group -->
    <EditText style="@style/Widget.Group.Top" />
    <EditText style="@style/Widget.Group" />
    <EditText style="@style/Widget.Group.Bottom" />

    <!-- Single item -->
    <EditText style="@style/Widget.Group.Single" />

</LinearLayout>

然后像这样在你的样式文件中添加一些样式

<style name="Widget.Group" parent="@android:style/Widget">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">46dp</item>
        <item name="android:layout_marginLeft">10dp</item>
        <item name="android:layout_marginRight">10dp</item>
        <item name="android:layout_marginTop">-1dp</item> <!-- Ensures we don't get a 2 dp top stroke -->
        <item name="android:padding">4dp</item>
        <!--<item name="android:background">@drawable/bg_input_group</item>-->
    </style>

    <style name="Widget.Group.Top">
        <item name="android:layout_marginTop">10dp</item>
        <!--<item name="android:background">@drawable/bg_input_group_top</item>-->
    </style>

    <style name="Widget.Group.Bottom">

        <item name="android:layout_marginTop">20dp</item>
        <!--<item name="android:background">@drawable/bg_input_group_bottom</item>-->
    </style>

    <style name="Widget.Group.Single" parent="Widget.Group.Top">
        <!--<item name="android:background">@drawable/bg_input_group_single</item>-->
    </style>

有关详细信息,请单击 here .

关于android - 如何在可绘制对象中添加填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30204793/

相关文章:

android - Litho 的@FromPrepare 注解有什么作用?

android - 一个 xml 文件中的所有组件样式?

java - Android 绘图链接失败

android - 为什么 Android 应用程序图标没有出现在应用程序信息和清除任务中?

android - 作为应用程序 Logo 的矢量可绘制对象

android - andoidx 库中的 float 操作按钮

java - dalvik Java 如何使用反射调用父类(super class)方法?

android - WeakReference 和 SoftReference 有什么区别

android - 检测用户是否已从他的 Facebook 应用程序中删除了我的应用程序

带有上下文操作栏的 Android Card UI 样式 ListView?