Android 如何以透视比显示图像?

Android 如何以透视比显示图像?,android,image,imageview,android-relativelayout,Android,Image,Imageview,Android Relativelayout,在我的应用程序中,我希望像gallery一样以放大比例显示图像。在我的应用程序中,我必须在图像上显示标记图像。因为标记图像具有拖动功能。因此,下面是用于该操作的xml <RelativeLayout android:background="#000000" android:layout_above="@+id/buttonlayout" android:id="@+id/imagelayout" android:layout_width="fil

在我的应用程序中,我希望像gallery一样以放大比例显示图像。在我的应用程序中,我必须在图像上显示标记图像。因为标记图像具有拖动功能。因此,下面是用于该操作的xml

<RelativeLayout 
    android:background="#000000" 
    android:layout_above="@+id/buttonlayout"    
    android:id="@+id/imagelayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <RelativeLayout
        android:layout_centerInParent="true"
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </RelativeLayout>


    </RelativeLayout>
在这段代码中,relImage是相对布局的参考,imgMarker是图像视图的参考。画廊图像被设置为相对布局。我的设备分辨率是480 x 800,图像分辨率是1920 x 1080。这就是我得到的输出

画廊图像视图就像下面的屏幕截图


但是我的要求就像画廊的图片一样,我想用透视比来显示图片。所以请建议我怎么做。先谢谢大家

您可以使用FrameLayout将图像视图放在此处,并将标记图像视图放在此处,如

是否有任何原因不使用
图像视图
?背景不用于显示图像。imgMarker.setScaleType(ImageView.ScaleType.FitXY);在该图像中,我需要另一个标记图像,以便我采用相对布局,并以编程方式将标记图像添加到该布局中。查看红色标记image.img.setScaleType(ImageView.ScaleType.FitCenter);或者为布局的宽度和高度指定一些大小。如果我将相对布局更改为图像视图,则可以使用框架布局轻松完成此操作。我能问你为什么要使用相对布局吗?
                    try {
//                      bmGallayImage = decodeFile(selectedImagePath);
                        bmGallayImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImageUri);
                        bmRotated = InventorySubmitImagesActivity.rotateBitmap(bmGallayImage, orientation); 
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } 
                    if(bmRotated!=null){
                        Drawable dr = new BitmapDrawable(bmRotated);

                        old_width=bmRotated.getWidth();
                        old_height=bmRotated.getHeight();
                        Log.e("gal bitmap height and width",""+old_height+"  "+old_width);
                        relImage.getLayoutParams().height = old_height;
                        relImage.getLayoutParams().width = old_width;
                        relImage.setBackgroundDrawable(dr);

                    }
                    relImage.removeAllViews();
                    imgMarker = new ImageView(this);
                    final RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
                         RelativeLayout.LayoutParams.MATCH_PARENT);
                    layoutParams.leftMargin = 0;
                    layoutParams.topMargin = 0;
                    relImage.addView(imgMarker, layoutParams);
                    imgMarker.setScaleType(ImageView.ScaleType.MATRIX);
                    bmdragImage=BitmapFactory.decodeResource(getResources(), R.drawable.image_marker);
                    imgMarker.setImageBitmap(bmdragImage);