Подтвердить что ты не робот

Изменение образа ImageView программным способом Android

Когда я изменяю изображение программным образом, он показывает новое изображение поверх старого изображения, которое изначально было установлено в файле макета?

Вот фрагмент моего файла макета:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="39dp"
    android:gravity="center_vertical" >
    <ImageView
        android:id="@+id/qStatusImage"
        android:layout_width="16dp"
        android:layout_height="16dp"
        android:layout_margin="5dp"
        android:background="@drawable/thumbs_down"
         />

    <TextView
        android:id="@+id/grp_child"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:textColor="@color/radio_colors"
        android:textStyle="normal"
        android:background="@color/grey"
    />

 </LinearLayout>

И код, который устанавливает изображениеView:

     @Override
public View getChildView(final int groupPosition, final int childPosition,
        boolean isLastChild, View convertView, ViewGroup parent) {
//Answers
            if(answersGroup != null)
                   answersGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
                       @Override
                    public void onCheckedChanged(RadioGroup group, int checkedId) {

                         //  int index = answersGroup.indexOfChild(findViewById(answersGroup.getCheckedRadioButtonId()));

                           qImageView = (ImageView) V.findViewById(R.id.qStatusImage);
                           if(ans ==0 || ans == 5){
                            //   qSV.setImageResource(0);
                               qImageView.setImageResource(R.drawable.thumbs_up);
                           }
                           else
                               qImageView.setImageResource(R.drawable.thumbs_down);

                       }
                   });

Что мне не хватает?

4b9b3361

Ответ 1

Это происходит потому, что вы устанавливаете src ImageView вместо фона.

Используйте это вместо:

qImageView.setBackgroundResource(R.drawable.thumbs_down);

Здесь поток, который говорит о различиях между этими двумя методами.

Ответ 2

Использовать в XML:

android:src="@drawable/image"

Использование источника:

imageView.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.your_image));

Ответ 3

qImageView.setImageResource(R.drawable.img2);

Я думаю, это поможет вам

Ответ 4

В вашем XML для представления изображения, где у вас есть android:background="@drawable/thumbs_down измените это на android:src="@drawable/thumbs_down"

В настоящее время оно помещает это изображение в качестве фона для представления, а не фактическое изображение в нем.

Ответ 5

В дизайне XML

android:background="@drawable/imagename 
android:src="@drawable/imagename"

Рисованное изображение с помощью кода

imageview.setImageResource(R.drawable.imagename);

Изображение сервера

Glide.with(context).load(url) .placeholder(R.drawable.image)
 .into(imageView);

Picasso.with(context).load(url) .placeholder(R.drawable.image)
 .into(imageView);