首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有足够的空间显示图像,则重叠图像

如果没有足够的空间显示图像,则重叠图像
EN

Stack Overflow用户
提问于 2014-09-30 17:38:17
回答 2查看 108关注 0票数 0

我正在编写一个小纸牌游戏,用户有五张卡片,将在屏幕的左边。假设每一张卡的宽度设置为100 to。然后,我希望卡片被相应地裁剪,并放置在彼此之下。如果卡片的总高度太大,无法显示它们,我希望它们重叠,而不是使它们更小。

举个例子,左边是一块平板电脑,空间足够了,右边是一部智能手机,我想把卡片重叠起来。

知道我该怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-01 15:47:15

我让它起作用了

代码

代码语言:javascript
复制
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);
          }
      }
  }
}

布局文件

代码语言:javascript
复制
<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>

这个片段在一个均匀的距离内与ImageViews重叠。

票数 0
EN

Stack Overflow用户

发布于 2014-09-30 17:51:55

您可以计算图像视图的高度,然后像这样裁剪卡片图像:

代码语言:javascript
复制
bm = Bitmap.createBitmap(originalbitmap, 0, 0, fullViewWidth, calculatedViewHeight);
imageview.setImageBitmap(bm);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26126805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档