Noob to 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张图片。然后我可以创建一个相对布局的视图,循环遍历孩子,使图像可见/可见,可点击或不可点击。这看起来是一个好方法吗?
如果是这样,我在第一次设置relativelayout时的问题是我可以在上面设置以及使用卡值设置Tag,我无法通过findViewById计算如何获取ImageView的整数。
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);
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:0)
您可以将标签值设置为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
}
}
注意:我在这里使用了butterknife,因此@OnClick()