Как установить ImageDrawable для View
Нуб на Java, поэтому у меня ограниченные знания. У меня есть 2 RelativeLayouts, которые будут содержать изображения 13-карточной руки. Один для всех карт и один слегка смещенный, который показывает, какие карты можно разыграть. XML довольно прост
<!--Player viewable cards-->
<RelativeLayout
android:orientation="vertical"
android:layout_width="200dp"
android:layout_height="680dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="100dp"
android:layout_marginLeft="15dp"
android:id="@+id/rlUserViewCards">
<ImageView
android:layout_width="100dp"
android:layout_height="85dp"
android:src="@drawable/c001"
android:rotation="90"
android:tag="1"
android:id="@+id/card1"
android:clickable="false">
</ImageView>
<ImageView
android:layout_width="100dp"
android:layout_height="85dp"
android:src="@drawable/c002"
android:rotation="90"
android:id="@+id/card2"
android:layout_below="@+id/card1"
android:layout_marginTop="-65dp"
android:clickable="false">
</ImageView>
и так далее для 13 изображений. Затем я могу создать представление об относительном расположении, которое проходит через детей, делая изображения невидимыми / видимыми, кликабельными или нет. Кажется ли это хорошим подходом?
Если это так, моя проблема при первой установке относительной разметки состоит в том, что я могу сделать выше, а также установить тег со значением карты, я не могу понять, как получить целое число для ImageView через findViewById.
userViewCards = (RelativeLayout) findViewById(R.id.rlUserViewCards);
userPickCards = (RelativeLayout) findViewById(R.id.rlUserPlayCards);
View v = userViewCards.getChildAt(0);
Resources res = getResources();
int resId = res.getIdentifier("s204", "drawable", getPackageName());
Drawable drawable = ResourcesCompat.getDrawable(getResources(), res.getIdentifier("s204", "drawable", getPackageName()), null);
ImageView insertImage = (ImageView) findViewById(??);
insertImage.setImageDrawable(drawable);
Может кто-то указать мне верное направление?
Спасибо!
1 ответ
Вы можете установить значение тега для imageView и получить его в своей деятельности следующим образом
<ImageView
android:layout_width="100dp"
android:layout_height="85dp"
android:src="@drawable/c001"
android:rotation="90"
android:tag="1"
android:id="@+id/card1"
android:clickable="false">
@OnClick({R.id.card1, R.id.card2, R.id.card3, R.id.card4})
public void selectedCard(View view) {
String selectedCard = view.getTag().toString();
Log.d(TAG, "Mode Selected : " + mode);
switch (Integer.parseInt(mode)) {
case Constant.Card1:
// Do something here
break;
case Constant.Card2:
// Do something here
break;
case Constant.Card3:
// Do something here
break;
case Constant.Card4:
// Do something here
}
}
Примечание: здесь я использую нож, поэтому @OnClick()