0

У меня есть макет, который используется в несколько мероприятий. У меня есть LinearLayout в макет, который выглядит следующим образом:Нажмите LinearLayout для выполнения действия

<LinearLayout 
    android:id="@+id/like_button" 
    android:clickable="true" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginEnd="10dp" 
    android:gravity="center_vertical" 
    android:layout_gravity="center_vertical"> 

    <ImageView 
     android:id="@+id/like_button_iv" 
     android:layout_width="20dp" 
     android:layout_height="20dp" 
     android:layout_marginEnd="10dp" 
     android:adjustViewBounds="true" 
     android:scaleType="fitCenter" 
     android:src="@drawable/ic_like" 
     /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_vertical" 
     android:layout_gravity="center_vertical" 
     android:text="100" 
     /> 

</LinearLayout> 

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

Кроме того, используется LinearLayout в этой ситуации идеально подходит?

Как это сделать?

+0

изображения Вам не нужно, что LinearLayout в все. И поэтому ImageView. Просто используйте ** составную ** в вашем TextView и сделайте TextView доступным. Это поможет сгладить ваши макеты для лучших характеристик. Просто перенесите средние свойства из LinearLayout в TextView. –

+0

Спасибо, что отвечает на один вопрос. Любые идеи с другой? – user5360382

+0

Используйте 'setCompoundDrawablesWithintrinsicBounds()', чтобы программно изменить программный вариант. Примечание. Это может быть ЛЮБОЙ допустимый Drawable, не обязательно файл png. –

ответ

0

Вы можете использовать свой ImageView для доступа и выполнять его. В классе активности объявите ImageView.

ImageView myimage; 

В вашем методе oncreate добавить

myimage=(ImageView) findViewById(R.id.like_button_iv);  
myimage.setOnclickListener(this); 

В методе onClick надстройку:

myimage.setImageDrawable(getResources().getDrawable(R.drawable.differntsrc)); 

Используйте вашу логику для выбора источника differntsrc