我在xml中有图像视图,我想尝试在中心设置图像:
我目前的代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageview_fullscreen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:adjustViewBounds="true"
android:scaleType="matrix"
android:src="@drawable/ic_launcher"
/>
</RelativeLayout>
我添加了放大/缩小图像视图的功能 -
http://stackoverflow.com/questions/15609845/add-limit-to-zoom-in-and-zoom-out-in-android
当我在上面编写代码时,图像无法在缩放类型matrix
的中心设置。图像设置在代码上方的左上方。
如何将其设置为以缩放类型matrix
为中心。 ?
答案 0 :(得分:1)
您可以使用
android:layout_gravity="center_vertical"
并设置
android:layout_width="wrap_content"
android:layout_height="wrap_content"
答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher" />
</FrameLayout>
试试这个。编辑了答案。
答案 2 :(得分:0)
对于ImageView,添加android:layout_centerInParent="true"
。
答案 3 :(得分:0)
试试这个
08
答案 4 :(得分:0)
您提到过,您正在使用视图缩放。 如果您使用多点触控来缩放ImageView, 请在onMeasure方法中调整大小并将其绘制在imageview中心 观点。
按照此示例在图像视图上实现单点触控和多点触控,图像将自动重新调整大小和适合中心。 此外,您可以将父级更改为FrameLayout以实现扩展许多视图。 http://www.mobile-open.com/2015/66671.html
答案 5 :(得分:0)
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
zoomImageView.setLayoutParams(params);
RectF drawableRect = new RectF(0, 0, zoomImageView.getDrawable().getIntrinsicWidth(), zoomImageView.getDrawable().getIntrinsicHeight());
RectF viewRect = new RectF(0, 0, width, (height) - 100);
matrix.setRectToRect(drawableRect, viewRect, Matrix.ScaleToFit.CENTER);
//matrix.setScale(-1,-1);
view.setScaleType(ImageView.ScaleType.MATRIX);
zoomImageView.setImageMatrix(matrix);
<ImageView
android:id="@+id/zoomImage"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:src="@mipmap/ic_launcher" />
首先在你的布局中将图像放在中心,当用户第一次触摸imaageview时,使imageview的宽度和高度匹配,并设置Scaletype矩阵,然后应用矩阵。
此处宽度和高度是设备宽度和高度,我们可以使用以下代码段进行操作。
DisplayMetrics displayMetrics = getApplicationContext().getResources().getDisplayMetrics();
width = displayMetrics.widthPixels;
height = displayMetrics.heightPixels;
答案 6 :(得分:0)
您可以在RelativeLayout上使用
android:layout_gravity="centerl"
并在ImageView上设置
android:layout_width="wrap_content"
android:layout_height="wrap_content"