当前位置: 首页 > 知识库问答 >
问题:

带xml图标的DrawableLeft

耿俊彦
2023-03-14

如何使用带有xml图标的draableleft?我有以下按钮:

<Button
   android:id="@+id/vitimas"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginBottom="10dp"
   android:layout_marginLeft="20dp"
   android:layout_marginRight="20dp"
   android:drawableLeft="@drawable/ic_person_black_24dp"
   android:drawableStart="@drawable/ic_person_black_24dp"
   android:background="@drawable/botao_verde"
   android:text="Vítimas"/>

在旧的API(如16)中,应用程序由于drawableLeft停止工作,我尝试使用图像按钮,但同样的情况也发生了,如果我使用app:srcCompat,它可以工作,但是图标不是停留在左边,我需要它停留在左边,文本在中间

图标来自Vector资产包。

共有3个答案

李俭
2023-03-14

将此添加到gradle文件中

 android {
   defaultConfig {
     vectorDrawables.useSupportLibrary = true
    }
 }
闻人嘉悦
2023-03-14

我找到的最好办法是:

static public void setLeftDrawable(View view, Context c, int drawable) {
        Drawable leftDrawable = AppCompatResources.getDrawable(c, drawable);

        if (view instanceof TextInputEditText) {
            ((TextInputEditText) view).setCompoundDrawablesWithIntrinsicBounds(leftDrawable, null, null, null);

        } else if (view instanceof BootstrapEditText) {
            ((BootstrapEditText) view).setCompoundDrawablesWithIntrinsicBounds(leftDrawable, null, null, null);

        } else if (view instanceof EditText) {
            ((EditText) view).setCompoundDrawablesWithIntrinsicBounds(leftDrawable, null, null, null);

        } else if (view instanceof TextView) {
            ((TextView) view).setCompoundDrawablesWithIntrinsicBounds(leftDrawable, null, null, null);
        }
    }

然后只需调用传递View、Context和Drawable,非常简单!

乜业
2023-03-14

AppCompatTextView支持app:drawableLeftCompatapp:drawableTopCompatapp:drawableRightCompatapp:drawableStartCompatapp:drawableEndCompat复合drawables,支持VectorDrawableCompat等后端口drawable类型。

在你的gradle文件中包括这个

implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.appcompat:appcompat-resources:1.1.0-rc01'

在您的文本视图中,您可以使用

app:drawableLeftCompat
app:drawableStartCompat
 类似资料:
  • 我想在python matplotlib绘图中显示一个固定的图例。我正在创建一大组绘图,其中一些缺少我正在使用的数据集。假设我有 data1,绿色绘制 数据2,以蓝色绘制 数据3,以蓝色绘制 在某些情况下,dataX缺失,但我想展示整个图例(始终是三种颜色)。到目前为止,我所发现的一切都是基于对所绘制的数据进行标记,因此:是否可以创建一个独立于所绘制数据的图例,并在创建图例时指定符号和颜色? 谢谢

  • 根据android iconography文档,状态栏中的图标应该是完全白色的,背景是透明的。然而,即使是内置的图标似乎也不都遵循这种模式。信号质量(适用于wifi和电池)、电池指示器和其他一些新设备上的图标上有全息蓝色背景。这个颜色是不是内置在图标本身?我正在寻找实现一个状态栏图标与我的应用程序,将表明一个连接到外部(蓝牙)设备的状态。我计划做我的公司徽标(它是一个相当简单的,大部分是圆形的形状

  • 注我已经使页面的其余部分完全响应媒体查询。我只想要这个导航部分的帮助。 HTML CSS 用于社交图标的CSS(博客和搜索图标)

  • Highcharts 曲线图 以下实例演示了 带标记曲线图。 我们在前面的章节已经了解了 Highcharts 配置语法。接下来让我们来看下如何配置。 配置 我们使用 marker.symbol 属性来配置标记。标记可以是 'square', 'diamond' 或 图片 url。标记可以添加在任何的数据点上: var series= [{ name: 'Tokyo',

  • 问题内容: 我了解如何使用精灵,但是IMG标签不是必需的“ src”属性吗?我总是可以使用SPAN或其他标签并设置background / width / etc,但从语义上讲不会正确。 基本上,我想为IMG标签省略SRC,而只使用精灵,但是我担心HTML在技术上因此无效。谢谢。 问题答案: 关于语义正确性: 当图像具有语义时, 因此被认为是内容,请 使用IMG标签 (不带图片)和正确设置的ALT

  • 问题内容: 我正在使用Tensorflow构建标准的图像分类模型。为此,我有输入图像,每个图像都分配了一个标签({0,1}中的数字)。因此,可以使用以下格式将数据存储在列表中: 我想使用TensorFlow的排队系统读取我的数据并将其输入到我的模型中。忽略标签,可以使用和轻松实现。这里的代码: 但是,在该过程中标签丢失了,因为图像数据作为输入管道的一部分被有意地改组了。通过输入队列将标签和图像数据