ImageView具有右对齐,裁剪,未缩放的内容

时间:2011-04-14 13:26:56

标签: android imageview crop alignment

我一直在寻找,摆弄和哭泣几个小时,但无法弄清楚如何将图像放入ImageView并使图像呈现未缩放,右对齐并且溢出超出ImageView的左侧裁剪

ImageView定义如下:

<ImageView
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:src="@drawable/bleh"
></ImageView>

layout_width设置为fill_parent以拉伸和缩小ImageView以适应屏幕。

layout_height设置为wrap_content,因为ImageView将始终具有固定的高度,由图像确定。

我没有定义layout_gravity="right",因为我的理解是这与ImageView在其父级中的定位有关,在这种情况下,因为ImageView的宽度设置为fill_parent而无效。

使用上面的布局代码,图像会缩放以适合ImageView。我可以阻止缩放的唯一方法是设置android:scaleType="center",这会阻止缩放,但遗憾的是图像居中。

是什么想法?否则,我现在正在玩弄以下替代方案:

  • Subclass ImageView并实现我自己的onDraw()方法。
  • 将完整图像大小的ImageView放入ScrollView并将滚动固定到最右侧(并禁用任何指示它是滚动视图)。

2 个答案:

答案 0 :(得分:5)

而不是滚动视图 - 将图像放在LinearLayout或RelativeLayout中。制作布局的layout_width fill_parent和layout_height包装内容。然后在ImageView上使用布局gravity right和wrap_content两者的宽度和高度。

<LinerLayout android:layout_width="wrap_content" 
  android:layout_height="wrap_content">
<ImageView android:layout_gravity="right"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:src="@drawable/bleh"/>
</LinearLayout>

答案 1 :(得分:2)

@harmanjd:你做了一点错误,这是正确的方法: (对不起,我无法评论你的回答)

<LinearLayout android:layout_width="fill_parent" 
     android:layout_height="wrap_content"
     android:gravity="right">

    <ImageView 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:src="@drawable/bleh"/>
    />
</LinearLayout>