1

ビットマップのサイズが画面サイズよりも大きい場合でも、その中の画像ビューが画面幅に合わないこのリストビューがあります。これが私が得る結果です:

(スパムポリシーにより、ここにスクリーンショットを投稿することはできません。スクリーンショットを表示するには、以下のリンクをクリックしてください。) http://www.sundancepost.com/ivue/screen/screen1.jpg

上の画面の赤いボックスで示されているように、リストは画面の幅に収まりません。

以下は私が望んでいた結果です:

http://www.sundancepost.com/ivue/screen/screen2.jpg

これがレイアウトの私のコードです。

features_listrow.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" 
android:orientation="vertical">    

<ImageView
   android:id="@+id/banner"        
   android:layout_width="fill_parent"       
   android:layout_height="wrap_content"
   android:adjustViewBounds="true"
   android:src="@drawable/ampersand_banner"/>

</RelativeLayout>

features_list:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:smoothScrollbar="true" 
    >

</ListView>

</LinearLayout>

両方のレイアウトファイルに対してlayout_widthとlayout_heightを正しく設定したと思います。これは、実行時のandroid:adjustViewBounds設定と関係があると思います。誰か助けてくれませんか?

4

3 に答える 3

2

私はついに何が問題なのかを知りました。画像のスケーリングは、 http: //www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/にあるこのImageLoader.classで行われます。

したがって、コードのスケーリング部分をコメントアウトすると、すべて正常に戻ります。

これはコードです:

private Bitmap decodeFile(File f){
    try {
        //decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f),null,o);

        //Find the correct scale value. It should be the power of 2.
       // final int REQUIRED_SIZE=100;
       // int width_tmp=o.outWidth, height_tmp=o.outHeight;
        int scale=1;
      //while(true){
        //if(width_tmp/2<REQUIRED_SIZE || height_tmp/2<REQUIRED_SIZE)
        //break;
        //width_tmp/=2;
        //height_tmp/=2;
        //scale*=2;
       //}

        //decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize=scale;
        return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
    } catch (FileNotFoundException e) {}
    return null;
}
于 2012-05-31T15:47:34.140 に答える
1

次のいずれかを使用して、画像ビューに画像を設定できます。

1)android:scaleType="fitXY"

また

2)android:scaleType="centerCrop"

画像ビューでいずれかを使用します。それは私が望むように私に完璧な結果を与えます。

于 2015-05-04T07:58:05.577 に答える
0

ここで役立つのは、他のプログラムを使用して画像のサイズを変更することだけだと思います。問題は、xmlまたはコードで画像サイズを設定するときに常に水平または垂直の側面だけで画像をプログラムでトリミングできないことです。

于 2012-05-31T07:21:30.233 に答える