2014-09-30 38 views
0

我正在編寫一個小型紙牌遊戲,其中用戶有五張紙牌,它們應位於屏幕的左側。假設每張卡片的寬度設置爲100dp。然後我想讓這些卡片相應地裁剪並放置在彼此之下。如果卡片的總高度太大而無法顯示,我希望它們重疊,而不是讓它們變小。如果沒有足夠的空間顯示它們,重疊圖像

例如,左側可能是平板電腦,其中空間足夠,右側是我想要卡片重疊的智能手機。

Example

任何想法,我該怎麼辦呢?

回答

0

我得到它的工作:

代碼

public class HandCardsLayout extends RelativeLayout { 

    // constructors etc.. 

    public void init() { 
     Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
     Point size = new Point(); 
     display.getSize(size); 
     int heightLandscape = size.y; 
     int viewDistance = heightLandscape/5; 
     for (int i = 0; i < 5; i++) { 
      ImageView imageView = getImageViewAt(i); 
      if(i < 4) { 
       imageView.setPadding(0, 0, 0, -viewDistance); 
      } 
     } 
    } 
} 

版式文件

<de.memorian.HandCardsLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@android:color/transparent" 
    android:gravity="center" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:adjustViewBounds="true" 
     android:layout_above="@+id/handCard2" 
     android:id="@+id/handCard1"/> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:adjustViewBounds="true" 
     android:layout_above="@+id/handCard3" 
     android:id="@+id/handCard2" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:adjustViewBounds="true" 
     android:layout_above="@+id/handCard4" 
     android:id="@+id/handCard3" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:adjustViewBounds="true" 
     android:layout_above="@+id/handCard5" 
     android:id="@+id/handCard4" /> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:adjustViewBounds="true" 
     android:layout_alignParentBottom="true" 
     android:id="@+id/handCard5" /> 
</de.memorian.HandCardsLayout> 

這段代碼與ImageView以一致的距離重疊。

0

你可以計算出你的imageviews的高度,然後裁剪名片圖像這樣的:

bm = Bitmap.createBitmap(originalbitmap, 0, 0, fullViewWidth, calculatedViewHeight); 
imageview.setImageBitmap(bm); 
相關問題