Android中listview 大小因分辨率而异


Android中listview 大小因分辨率而异代码:

  1. // 获得手机分辨率   
  2.     DisplayMetrics dm = new DisplayMetrics();   
  3.     getWindowManager().getDefaultDisplay().getMetrics(dm);   
  4.     String s = dm.widthPixels + "*" + dm.heightPixels;   
  5.   
  6.     // listview 因分辨率而异   
  7.     if (s.equals("480*800") || s.equals("480*854"))   
  8.         FixStyle.setListViewHeightBasedOnChildren(listViewActivity, 32);   
  9.     else if (s.equals("320*480")) {   
  10.         FixStyle.setListViewHeightBasedOnChildren(listViewActivity, 22);   
  11.   
  12.     }   
  13.     else if (s.equals("540*960") || s.equals("720*1280")) {   
  14.         Log.e("540*960""540*960");   
  15.         FixStyle.setListViewHeightBasedOnChildren(listViewActivity, 32);   
  16.   
  17.     }   
  18.   
  19.   
  20. import android.view.ViewGroup;   
  21. import android.widget.ListAdapter;   
  22. import android.widget.ListView;   
  23.   
  24. public class FixStyle {   
  25.     public static void setListViewHeightBasedOnChildren(ListView listView,int itemHeight) {     
  26.         ListAdapter listAdapter = listView.getAdapter();      
  27.         if (listAdapter == null) {     
  28.             return;     
  29.         }     
  30.      
  31.         int totalHeight = listAdapter.getCount() *itemHeight;   
  32.      
  33.         ViewGroup.LayoutParams params = listView.getLayoutParams();     
  34.         params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));     
  35.         listView.setLayoutParams(params);     
  36.     }    
  37. }  

相关内容