ImageView Center与ScaleType Matrix的位置

时间:2014-05-20 08:51:48

标签: android xml android-layout scale

我正在使用ImageView的Zoom效果,所以我需要使用scaletype = matrix。现在,我想将中心位置设置为ImageView,但我无法设置它。

请帮我解决这个问题。

layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imgImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:contentDescription="@string/imgdesc"
        android:scaleType="matrix"
        android:src="@drawable/ic_answer" />

</RelativeLayout>

6 个答案:

答案 0 :(得分:6)

放下以下代码行:

RectF drawableRect = new RectF(0, 0, image_width, image_height);
RectF viewRect = new RectF(0, 0, screen_width, screen_height);
matrix.setRectToRect(drawableRect, viewRect, Matrix.ScaleToFit.CENTER);

希望这会对你有所帮助。

答案 1 :(得分:1)

尝试使用ImageView

  android:layout_centerInParent="true"

答案 2 :(得分:0)

尝试以下代码:

android:scaleType="centerInside"

android:scaleType="fitCenter"

android:scaleType="centerCrop"

答案 3 :(得分:0)

android:scaleType="matrix"情况下,我找到的唯一方法是使用Matrix设置ImageView位置,使用以下代码:

Matrix matrix = new Matrix();
matrix.postTranslate(screen_width/2, screen_height/2);
imageView.setImageMatrix(matrix);

答案 4 :(得分:0)

我遇到了同样的问题。最终我放弃使用Matrix并将其替换为:

android.view.ViewGroup.LayoutParams params = imageView.getLayoutParams();
params.height = desiredHeight;
params.width = desiredWid;
imageView.setLayoutParams(params);

答案 5 :(得分:-1)

试试这个,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imgImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:scaleType="matrix"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

这可能会对你有所帮助