增加超出屏幕尺寸的图像

时间:2011-10-30 10:39:33

标签: android imageview

我想在屏幕上显示图像,但图像边缘将大于屏幕本身的大小。 IE如果最大屏幕宽度为X,那么我希望图像的宽度为X +100,最大屏幕高度为Y,则图像高度为Y +100。

我希望此选项能够将图像向右/向左移动,并且图像仍将显示在整个屏幕上。

1 个答案:

答案 0 :(得分:2)

为此,我将RelativeLayoutrequestLayout函数一起使用:

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

  <ImageView
      android:id="@+id/iv"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerInParent="true"/>

</RelativeLayout> 

并在代码中生成适当的图像:

    Display display = getWindowManager().getDefaultDisplay(); 
    int     width   = display.getWidth();
    int     height  = display.getHeight();

    // example code with bigger dimensions than the screen

    Bitmap b =  Bitmap.createBitmap(width + 100, height + 100, Bitmap.Config.ARGB_8888);

    // draw smth on the bitmap

    Canvas c = new Canvas(b);
    Paint  p = new Paint();

    p.setColor(Color.RED);

    c.drawCircle(b.getWidth() / 2,
                 b.getHeight() / 2,
                 Math.min(b.getWidth(), b.getHeight()) / 2, 
                 p);

    // set the image
    ImageView iv = (ImageView) findViewById(R.id.iv);
    iv.setImageBitmap(b);

    // call this method to change imageview size
    iv.requestLayout();