android - Textview 边框和 drawableLeft 之间的填充

标签 android android-layout

这是我的 TextView布局:

my textview

如您所见,边框(stroke)和TextView 内的图像之间有一个填充, 这是使用 drawableLeft 给出的属性。 我知道我可以使用 drawablePadding属性来调整图像和文本之间的填充,但我想删除笔划和图像之间的填充。我可以做那样的事吗?并且,可能来自 XML?

这是 TextView的布局:

<TextView
            android:id="@+id/txtPlate2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableStart="@mipmap/ic_italian_plate"
            android:textColor="@color/black"
            android:textSize="40sp"
            android:text="text"
            android:textAlignment="center"
            android:paddingStart="0dp"
            android:paddingEnd="5dp"
            android:background="@drawable/plate_textview"/>

这是plate_textview drawable,我只是在其中添加一个 stroke :

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

    <solid
        android:color="@android:color/white"/>

    <stroke
        android:width="2dip"
        android:color="@color/black"/>
</shape>

提前致谢!

最佳答案

问题是您正在使用 mipmap 文件夹中的图像。 mipmap 仅用于 launcher 图标,并在 padding 上显示时添加了额外的 elevationview

Always keep resource icons in drawable folder and use it as @drawable/ic_italian_plate.

#. 您可以使用 paddingcorners 添加 drawable<padding> 到自定义 <corners>

更新 plate_textview.xml 如下:

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

    <solid
        android:color="@android:color/white"/>

    <stroke
        android:width="2dp"
        android:color="@color/black"/>

    <padding
        android:top="2dp"
        android:bottom="2dp"
        android:left="2dp"
        android:right="8dp" />

    <corners
        android:radius="2dp" />
</shape>

更新 TextView 如下:

<TextView
    android:id="@+id/txtPlate2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:gravity="center"
    android:drawableStart="@drawable/ic_italian_plate"
    android:textColor="@color/black"
    android:textSize="40sp"
    android:text="I-123-4568"
    android:textAlignment="center"
    android:background="@drawable/plate_textview"/>

输出:

enter image description here

希望对你有帮助~

关于android - Textview 边框和 drawableLeft 之间的填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44356719/

相关文章:

安卓风格说明

android - FragmentStatePagerAdapter : Multiple Items visible at the same time - How to center a specific page?

java - 处理程序和接口(interface)可运行 - 有新线程

java - 操作栏作为 fragment

android - 如何在该区域获取蓝牙配对设备

android - 如何调整 ListView 项目的屏幕尺寸

android - Twitter4J android查询搜索不返回所有推文

android - 无法编辑 EditText

android - 键盘出现时如何使android View 可滚动?

android - Android 模拟器上的布局看起来不像我在 Android 应用程序项目中所做的布局