2011-12-05 13 views
1
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/venueImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 

私は通常のリストビューと、その行に上記のxmlを使用するカスタムアダプターを持っています。Androidの設定リストの高さは画面の解像度に応じて表示されます

私は3行しか持っていませんが、画面の解像度の高さに合わせて3行の高さを同じにします。現時点では、LinearLayoutの高さを設定すると何もしないので、行の高さを設定する方法はわかりません。

+0

なぜ 'リストビューを使用'3行だけ、特に各行が単なる' ImageView'ですか? 3つの 'ImageViews'で1つの' LinearLayout'(垂直方向)を使用し、それぞれに 'layout_weight'を与えてください。 'layout_weight'を' ImageView'ごとに同じようにしてください。画面の解像度に関係なく均等に配置されます。 – Squonk

答えて

2

ImageViewの高さを自由に設定できます。プログラムでこれを設定するには、カスタムアダプタのgetView()でこれを行うことができます。

public View getView(int position, View convertView, ViewGroup parent) { 

    View cv = convertView; 

    if (convertView == null) { 
      cv = inflater.inflate(R.layout.listview_item, null); 
    } 

    ImageView venueImage = (ImageView) cv.findViewById(R.id.venueImage); 

    LinearLayout.LayoutParams vi_params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, (int)(screenHeight*0.33); 
    venueImage.setLayoutParams(vi_params); 

    return cv; 
} 

あなたはあなたのメインの活動でこのコードを追加することによって、画面の高さを得ることができます。

int screenHeight = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight(); 
+0

メインアクティビティにscreenHeight変数を追加するときにエラーが発生する – Adam

+0

「コンテキスト」を想定しています。コンテキストを「YourActivity.this」に変更してください – Erick

+0

それは私のために働きます!、ありがとう! –

関連する問題