如何在方向变化时调整图像大小..?

时间:2012-01-20 04:16:40

标签: android xml

我有一个图像(320x210),我从xml文件中的drawable文件夹中调用图像...在纵向模式下它的工作正常,但是当我将设备更改为LANDSCAPE时,图像不适合prorerly .. ??如何解决这个问题.. ?? 这是我试过的xml代码

   <ImageView
        android:id="@+id/imageView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter"(here i tried with "fitXY" also)
        android:adjustViewBounds="true"
        android:src="@drawable/srkpic"/>  

我也尝试过这种方法 protected void onSizeChanged(int w,int h,int oldW,int oldH) { } 但只有当我们使用不符合我要求的“View”扩展时,此方法才可用。 感谢。

2 个答案:

答案 0 :(得分:2)

为srkpic提供res/drawable-land下横向大小的备用资源。

答案 1 :(得分:2)

使用下面的代码更改您的方向,其中imgHeaderFooter是您的位图

 imgHeaderFooter.setDensity(1/2);

        int width = imgHeaderFooter.getWidth();
        int height = imgHeaderFooter.getHeight();

        int screenWidth = UseMe.getDispWidth()/2;

        float scaleWidth = ((float) screenWidth) / width;
        float scaleHeight = ((float) height) / height;      

        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth,scaleHeight);
        Bitmap resizedBitmap = Bitmap.createBitmap(imgHeaderFooter,0,0,width,height,matrix,true);
        BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);

        imageView = new ImageView(this);
        imageView.setScaleType(ScaleType.FIT_XY); 
        imageView.setImageDrawable(bmd);