ImageView не отображает изображение, установленное программно - PullRequest
0 голосов
/ 07 июня 2019

У меня есть 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)

Почему?

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Хм, попробуйте это, AppCompatImageПросмотрите, что вам нужно.
Я только что проверил 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);
0 голосов
/ 07 июня 2019

Вам нужно get () https://square.github.io/picasso/

Picasso.get()
    .load(R.drawable.ic_telephone)
    .into(iconIV);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...