2012-01-09 14 views
-1

おはようございます。私はすべての表示幅のように大きな画像を持っています。私は、この画像がすべての画面の大きさと密度に対してサイズ変更されていることを願っています。私はディレクトリdrawable-ldpi、mdpi、hdpi、xhdpiにさまざまな次元の画像を入れましたが、Galaxy NoteやGalay Nexusなどの同じ表示では、画像がすべての画面幅を占めるわけではありません!どうして ?どのようにできるのか ?Android:すべての画面で画像のサイズが変更されます

ありがとうございました

答えて

-1

//

android:scaleType="fitXY" 

normal hdpi is 480x 800 ~240dpi 

が、あなたの

samsung note is 800 x 1280 pixels, 5.3 inches (~285 ppi pixel density) 
galaxy nexus is 720 x 1280 pixels, 4.65 inches (~316 ppi pixel density) 

かはDisplaymetricsを使用して、画面密度を取得し、異なる密度のために、様々な画像を提供します。

+0

これは、すべてのケースでイメージをスケールアップすることはなく、アスペクト比も保持しません。 – Joru

-2

マニフェストに画像を作成する必要があります。次にプロパティを入力するだけです。

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 

画像の幅と高さを設定します。ここでは、画面全体に画像が表示されます。 layout_width="match_parent"layout_height="wrap_content"でこのImageViewを使用

+0

いいえ、間違っているのに役立ちますhere

希望を見てとります。このコードでも、画像のサイズ変更は機能しません。 – MimmoG

+0

画像が画面より小さい場合はYESです。それ以外の場合は、http://stackoverflow.com/questions/3846338/how-to-crop-an-image-in-androidのようにコード内でトリミングするだけです。 – clement

+0

いいえ、私は画像をトリミングしたくないし、画像は画面の同じ次元を持って...今私はジョルの方法を試して.... – MimmoG

-2
public class ScreenWidthImgView extends ImageView { 

    public ScreenWidthImgView(Context context) { 
     super(context); 
     setScaleType(ScaleType.FIT_XY); 
    } 

    public ScreenWidthImgView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     setScaleType(ScaleType.FIT_XY); 
    } 

    public ScreenWidthImgView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
     setScaleType(ScaleType.FIT_XY); 
    } 

    @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     Drawable d = getDrawable(); 
     int width = MeasureSpec.getSize(widthMeasureSpec); 
     int height = width * d.getIntrinsicHeight()/d.getIntrinsicWidth(); 
     setMeasuredDimension(width, height); 
    } 
} 

はあなたに常に画面の幅いっぱいを占め、均一に画像を拡大縮小画像が得られます。

+0

なぜこれが投票されたのですか? – Si8

0

最も簡単な方法は常にベストではないので、私は他のオプションも検討します。 しかし、XHDPIデバイス用のイメージを作成し、それをxhdpiフォルダに入れると、 xhdpiより小さいデバイスは自動的に画像を縮小します。

が、これは

関連する問題