0

私の問題はこれです:私はアンドロイド2.2をターゲットにしてアンドロイドエミュレーターを使用しています。アプリケーションの背景を処理するカスタムビューを作成しました。このビューでは、画像のみを表示したいのですが、画面全体に表示したいのです。

「アクティビティ」からビューを次のように初期化します。BackgroundViewbw=new BackgroundView(this);

問題:HDDで、使用しているリソースイメージは500x375ピクセルです。電話した後:

ビットマップm_resourceBitmap=BitmapFactory.decodeResource(getResources()、R.drawable.landscape_1); int nWidth = m_resourceBitmap.getWidth(); int nHeight = m_resourceBitmap.getHeight();

返されるnWidthとnHeightは、リソースを配置した場所によって異なります。「drawable-mdpi」に配置すると元のサイズになり、そうでない場合は他のサイズになります。

一方、this.getWidth();を介してビューに幅と高さを要求すると、this.getHeight();

固定値を取得しますが、デバイスに期待する解像度とは異なります(480x800デバイスを設定すると、320x533を取得します)

最後に、ビューの寸法を画像の寸法で割ってスケールマトリックスを作成しようとすると、画面上の結果は画面よりもはるかに小さい画像になります...

私の質問は、ビュー内でリソースビットマップを描画して画面全体を占めるようにするには、どのような質問をどのオブジェクトから行う必要があるかということです。

4

1 に答える 1

9

レイアウト XML ファイルですべてを行うことはできませんか? (メニューの背景画像に使用する例を次に示します)

<ImageView android:id="@+id/menuBackground"
        android:src="@drawable/imageResource"
        android:adjustViewBounds="true"
        android:gravity="center_vertical"
        android:scaleType="fitXY"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_x="0dp" 
        android:layout_y="0dp" />

その後、実行時に変更する必要がある場合は、ドローアブルを変更するだけです。

于 2010-11-14T17:33:39.247 に答える