如何将图像对齐到屏幕底部

时间:2015-09-18 11:11:24

标签: android imageview

我想将图像对齐到屏幕底部。作为我的应用程序条件,我必须将我的图像的scaleType设置为矩阵。当我将scaleType应用于矩阵时我真的不知道为什么我的图像到顶部。这是我的xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rl_capture"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="bottom">


    <FrameLayout
        android:id="@+id/fl_camera"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="bottom">

        <ImageView
            android:id="@+id/img_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="content_desc_overlay"
            android:scaleType="fitXY"
            android:src="@drawable/ic_launcher"

            />

        <ImageView
            android:id="@+id/iv_overlay"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_gravity="bottom|center"
            android:adjustViewBounds="true"
            android:gravity="center_vertical"
            android:scaleType="matrix"

            android:src="@drawable/suit_1"

            />

        <RelativeLayout
            android:id="@+id/overlay_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="bottom"

            android:adjustViewBounds="true"

            ></RelativeLayout>


    </FrameLayout>

</FrameLayout>

现在我在ImageView id = iv_overlay中设置图像,该图像应该位于xml中每个视图的顶部并且正常工作,iv_overlay Imageview位于顶部,但设置在屏幕的左上角。

应该位于屏幕底部的位置。所以请告诉我如何通过设置scaleType来实现这一点,我知道如果我删除scaleType然后它可以很容易地对齐到底部。但由于某些原因,我必须使用scaletype = Matrix。

编辑: 对于那些想要看图像的人来说,这里是演示图像,分辨率是 479 * 414,但我使用下面给出的图像是一个演示图像,很快就能从设计师那里得到更好的图像,透明背景

enter image description here 请帮忙。

3 个答案:

答案 0 :(得分:1)

将您的imageview放在相对布局中。并使用alignparrentbottom = true

答案 1 :(得分:0)

你的问题是

android:layout_height="match_parent"
android:layout_width="match_parent"

将这两者更改为&#34; wrap_content&#34;并解决了你的问题

答案 2 :(得分:0)

对于那些正在工作的人来说,想要旋转,缩放和拖动并使用矩阵作为比例类型并面对类似的问题正如我所做的那样,这里是一个通过java代码的完整解决方案

imageView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                if (Build.VERSION.SDK_INT >= 16) {
                    imageView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                } else {
                    imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                }

                Drawable drawable = imageView.getDrawable();
                Rect rectDrawable = drawable.getBounds();
                float leftOffset = (imageView.getMeasuredWidth() - rectDrawable.width()) / 2f;
                float topOffset = (imageView.getMeasuredHeight() - rectDrawable.height()) / 1f;

//                Matrix matrix = imageView.getImageMatrix();
                 matrix = imageView.getImageMatrix();
                matrix.postTranslate(leftOffset, topOffset);
                imageView.setImageMatrix(matrix);
                imageView.invalidate();
            }
        });

它会像魅力一样工作