我试图在ImageView中显示一个大图像(比屏幕宽),我使用矩阵比例类型。
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pizza_intro_test"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:scaleType="matrix"
/>
但是,我无法在ImageView中对齐图像。我想显示图像的“右侧”部分,但ImageView显示“左”部分。
这是当前状态:
这是我想要实现的状态:
答案 0 :(得分:0)
Checkout Matrix.setRectToRect方法并尝试实现它 http://developer.android.com/reference/android/graphics/Matrix.html#setRectToRect%28android.graphics.RectF,%20android.graphics.RectF,%20android.graphics.Matrix.ScaleToFit%29
答案 1 :(得分:0)
尝试将图片视图的重力设置为右侧。
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:src="@drawable/pizza_intro_test"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:scaleType="matrix"
/>
答案 2 :(得分:0)
我通过设置source和destination Rect来做类似的事情。诀窍是在目标Rect上使用负值。这样你就可以在可见画布之外“开始绘制”图像的左侧,并且右侧将在画布上绘制。
目标矩形应该是这样的:
float scale = canvas.getHeight() / (float)bm.getHeight();
Rect dest = new Rect(canvas.getWidth()-bm.getWidth()*scale,canvas.getWidth(), canvas.getHeight())
你可以在onDraw()上定义它并与
一起使用canvas.drawBitmap(bm, null, mDstRect, mPaint);
您无需在XML或代码上设置任何scaleType。
答案 3 :(得分:0)
也许这已经太晚了,但即使我今天遇到了同样的问题并使用以下代码修复了它。
所有对齐/缩放选项都在scaleType属性中。
现在,如果您想将图像与ImageView的开头对齐,请使用 android:scaleType="fitStart"
。
同样, android:scaleType="fitEnd"
可将其与ImageView的底部对齐。