我正在編寫一個小型紙牌遊戲,其中用戶有五張紙牌,它們應位於屏幕的左側。假設每張卡片的寬度設置爲100dp。然後我想讓這些卡片相應地裁剪並放置在彼此之下。如果卡片的總高度太大而無法顯示,我希望它們重疊,而不是讓它們變小。如果沒有足夠的空間顯示它們,重疊圖像
例如,左側可能是平板電腦,其中空間足夠,右側是我想要卡片重疊的智能手機。
任何想法,我該怎麼辦呢?
我正在編寫一個小型紙牌遊戲,其中用戶有五張紙牌,它們應位於屏幕的左側。假設每張卡片的寬度設置爲100dp。然後我想讓這些卡片相應地裁剪並放置在彼此之下。如果卡片的總高度太大而無法顯示,我希望它們重疊,而不是讓它們變小。如果沒有足夠的空間顯示它們,重疊圖像
例如,左側可能是平板電腦,其中空間足夠,右側是我想要卡片重疊的智能手機。
任何想法,我該怎麼辦呢?
我得到它的工作:
代碼
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以一致的距離重疊。
你可以計算出你的imageviews的高度,然後裁剪名片圖像這樣的:
bm = Bitmap.createBitmap(originalbitmap, 0, 0, fullViewWidth, calculatedViewHeight);
imageview.setImageBitmap(bm);