我有一个ImageView
:
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/iconIv"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:adjustViewBounds="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription"
tools:srcCompat="@sample/icon[1]" />
///我也尝试了普通的ImageView,但没有成功
它是完全可见的,我在UiAutomatorViewer中看到了它的边界。
例如,当我从XML设置图像时,app:srcCompat="@drawable/ic_telephone"
会正常显示。
如果我以编程方式设置相同的图像 iconIv.setImageResource(R.drawable.ic_telephone)
,则不会显示图像。
它也不适用于毕加索:
Picasso
.with(iconIv.context)
.load(R.drawable.ic_telephone)
.into(iconIv)
或
Picasso
.with(iconIv.context)
.load(appTask.iconUrl)
.into(iconIv)
或使用Glide:
Glide
.with(iconIv.context)
.load(appTask.iconUrl)
.into(iconIv)
为什么?
答案 0 :(得分:0)
您需要 get() https://square.github.io/picasso/
Picasso.get()
.load(R.drawable.ic_telephone)
.into(iconIV);
答案 1 :(得分:0)
嗯,尝试一下,您需要AppCompatImageView。
我刚刚测试了FYI
private AppCompatImageView mImv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImv = findViewById(R.id.iconIv);
mImv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.v(TAG, "onClick: ");
}
});
mImv.setImageResource(R.drawable.ic_save);