アンドロイド - オーバーラップイメージ(トランプ)

私は、カードの前半だけが見えるように、そして残りの半分が次のトランプカードによって覆われるように、ゲームオーバーラップのトランプカードを作成しようとしています。唯一表示されるべきカードは最後/一番右のカードです。

私はframelayoutとrelativelayoutの両方で以下のコードを使用していません。誰でもいくつかの提案を提供できますか?

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コードは下にあります...これより多くの画像がありますが、これは私がテストしていたものです


            
            
        
6
あなたはXMLを投稿できますか?
追加された 著者 josephus,
その更新---別の相対論的な内部の相対論的な内部
追加された 著者 JLK,

2 答え

私は年齢のためにこれに立ち往生し、4時間後にコードとグーグルで混乱しました。私は最終的に解決策を考え出しました。それはかなりシンプルです。

あなたは次のカードを前のカードの上と左に揃えてください。これにより、2枚目のカードが前にカードの上に置かれるようになります。次に、 leftMargin を設定して、カードを一番上に「押して」、部分的に重なり合うようにします。

ここに私のコードがあります(プログラム的に行われます):

for(int i=0; i
8
追加された
ll.addView(ib);でllです親コンテナが線形レイアウトを持っていることを意味しますか?あなたがレイアウトファイルのコードを説明して共有できるかどうか本当に感謝します。
追加された 著者 oat,
決して気にしない - それを考え出した:)ありがとう
追加された 著者 oat,

You can provide view bounds intentionally mismatched with image size, and use ScaleType of an Imageview: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html. For example, android:scaleType="fitStart"

1
追加された