如何以编程方式在 ImageView 中显示多个可绘制对象(带边距)

How to display multiple drawables (with margins) inside ImageView programatically

是否可以在不使用框架布局+任何不必要的嵌套的情况下在 ImageView 中显示多个可绘制对象(它们之间有边距)?如何实现以下目标?

  1. 每个可绘制对象都正常显示,无需任何调整大小
  2. 只有 drawableAdrawableB 在 end/right
  3. 上有 10dp 的边距

XML

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/myImgView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/myTxtView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

Java

        Resources r = getContext().getResources();
        int tenDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, r.getDisplayMetrics());

        ImageView customIV = content.findViewById(R.id.myImgView);
        Drawable drawableA = getResources().getDrawable(R.drawable.ic_happyface);
        Drawable drawableB = getResources().getDrawable(R.drawable.ic_neutralface);
        Drawable drawableC = getResources().getDrawable(R.drawable.ic_sadface);
        customIV.addView(?);

一个ImageView只有一个Drawable。需要多个 ImageViews 才能显示多个 Drawable

您可以用 RelativeLayout 替换根 LinearLayout 以避免嵌套。