android-重叠图像(扑克牌)
我试图使我的游戏中的扑克牌重叠,这样只有一张牌的前半部分被看到,而另一半被下一张扑克牌覆盖。唯一应该完全可见的卡是最后一张/最右边的卡 我在framelayout和relativelayout中使用了以下代码,但都没有用。有人能提供一些建议吗android-重叠图像(扑克牌),android,layout,android-relativelayout,overlap,android-framelayout,Android,Layout,Android Relativelayout,Overlap,Android Framelayout,我试图使我的游戏中的扑克牌重叠,这样只有一张牌的前半部分被看到,而另一半被下一张扑克牌覆盖。唯一应该完全可见的卡是最后一张/最右边的卡 我在framelayout和relativelayout中使用了以下代码,但都没有用。有人能提供一些建议吗 public int shouldShow(int numberOfCards, int card, int id) { if(card == -1) hide(id); else { findVie
public int shouldShow(int numberOfCards, int card, int id)
{
if(card == -1)
hide(id);
else
{
findViewById(id).setBackgroundDrawable(deckimages[card]);
//findViewById(id).offsetLeftAndRight(findViewById(id).getWidth()* numberOfCards / 2);
show(id);
//findViewById(id).setPadding(findViewById(id).getWidth()* numberOfCards / 2, 0,0,0);
return numberOfCards+1;
}
return numberOfCards;
}
我尝试过使用填充和偏移方法,这两种方法都不适合我。但是我也注意到getwidth()和getmeasuredwidth()方法返回0
关于我应该使用哪种布局以及为什么getwidth函数不起作用,有什么建议吗
下面是xml代码…可能会有更多的图像,但这是我正在测试的
<RelativeLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/RelativeLayout1">
<ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
<ImageView android:id="@+id/imageView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
</RelativeLayout>
您可以故意提供与图像大小不匹配的视图边界,并使用Imageview的ScaleType:。例如,android:scaleType=“fitStart”
我被困在这上面很久了,在4个小时的代码和谷歌搜索之后。我终于想出了解决办法,而且很简单
您所要做的就是将下一张卡与上一张卡的顶部和左侧对齐。这将使第二张卡在之前放置在卡的顶部。然后设置一个leftMargin
,将卡的顶部向右“推”,产生部分重叠效果
以下是我的代码(以编程方式完成):
for(int i=0;iits updated---它是另一个relativelayout中的relativelayout。ll.addView(ib)中的ll是什么;这是否意味着父容器具有线性布局?如果您能解释并共享布局文件的代码,我将不胜感激。
for(int i=0; i<hand.size();i++){
int c = hand.get(i).getCardResource();
ib = new ImageButton(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_TOP, i-1);
params.addRule(RelativeLayout.ALIGN_LEFT,i-1);
params.leftMargin= 40;
ib.setImageResource(c);
ib.setClickable(true);
ib.setPadding( 3, 3, 3, 3);
ib.setId(i);
ib.setLayoutParams(params);
ll.addView(ib);
}