2011-10-30 34 views
0

画像を画面に表示したいが、画像のエッジは画面自体のサイズより大きくなります。 IE最大画面幅がXの場合、画像の幅をX + 100、最大画面高さをYとすると画像の高さはY +100になります。画面のサイズを超えて画像を拡大する

画像を左右に動かすことができますが、画像は画面全体に表示されます。私はrequestLayout機能をRelativeLayoutを使用し、この目的のために

答えて

2

<?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(); 
+0

私はdrawCircleにしたい場合、これは良いですが、私は描きたいです既存の描画可能イメージ。どうやってやるの?ありがとう。 –

+0

申し訳ありませんが、あなたのために何ができるのか、たぶん既存のクラスをスクロールビューで知りません。しかし、イメージを画面より大きくしたい場合、私はあなたに解答を与えました。リソースから既存のイメージを設定したい場合(簡単にするために)、 'd = getResource()。getDrawable(R.drawable.image)'と 'iv.setImageDrawable(d)'を使うことができます。 – m039

関連する問題