如何以编程方式在 ImageView 中显示多个可绘制对象(带边距)
How to display multiple drawables (with margins) inside ImageView programatically
是否可以在不使用框架布局+任何不必要的嵌套的情况下在 ImageView 中显示多个可绘制对象(它们之间有边距)?如何实现以下目标?
- 每个可绘制对象都正常显示,无需任何调整大小
- 只有
drawableA
和 drawableB
在 end/right 上有 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
以避免嵌套。
是否可以在不使用框架布局+任何不必要的嵌套的情况下在 ImageView 中显示多个可绘制对象(它们之间有边距)?如何实现以下目标?
- 每个可绘制对象都正常显示,无需任何调整大小
- 只有
drawableA
和drawableB
在 end/right 上有 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
以避免嵌套。