gridview宽度自适应屏幕间距---计算一个item(或某个图片)的占屏幕大小

gridview宽度自适应屏幕间距---计算一个item(或某个图片)的占屏幕大小


Tools.java:

     /**

* @description 获取屏幕宽高
* @author zhongwr
* @update 2014年8月30日 下午4:51:48
*/
public static Point getScreenSize(Context ctt) {
if (ctt == null) {
return screenSize;
}
WindowManager wm = (WindowManager) ctt.getSystemService(Context.WINDOW_SERVICE);
if (wm != null) {
DisplayMetrics mDisplayMetrics = new DisplayMetrics();
Display diplay = wm.getDefaultDisplay();
if (diplay != null)
{
// if (Build.VERSION.SDK_INT > 16)// Build.VERSION_CODES.JELLY_BEAN
// {
// diplay.getRealMetrics(mDisplayMetrics);
// }
// else
// {
diplay.getMetrics(mDisplayMetrics);
// }
int W = mDisplayMetrics.widthPixels;
int H = mDisplayMetrics.heightPixels;
if (W * H > 0 && (W > screenSize.x || H > screenSize.y)) {
screenSize.set(W, H);
//Log.i(TAG, "screen size:" + screenSize.toString());
}
}
}
return screenSize;
}

      public static int px2dip(Context context, float pxValue) {
return (int) (pxValue / density + 0.5f);
}


public static int dip2px(Context context, float dipValue) {
return (int) (dipValue * density + 0.5f);
}

     

/***


* @description 计算16:9 图片的高度
* @author zhongwr
* @update 2015年9月10日 下午12:09:37
*/
private void calculatePicHeight() {


int sw = Tools.getScreenSize(context).x;
int width = (sw - Tools.dip2px(context, 18 * 2)- Tools.dip2px(context, 16))/2; // 左右间距 18 * 2   图片间距为16  每行两张图片
if (width > 0) {
imgWidth = width;
imgHeight = width * 9 / 16;
}

}


  adapter:getview()

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


ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(context, R.layout.label_detail_knowledge_vedio_item, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
// 按16:9设置图片高度
if (imgHeight > -1) {
LayoutParams params = holder.ivVedioPic.getLayoutParams();
params.height = imgHeight;
params.width = imgWidth;
}
} else {
holder = (ViewHolder) convertView.getTag();
}

     


gridview布局的一部分  注::需要设置水平或垂直间距,否则间距是自适应,有可能宽度间距达不到效果

                  android:id="@+id/gv_detail_vedio"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:horizontalSpacing="16dp"
                android:listSelector="#ffffffff"
                android:numColumns="2"
                android:stretchMode="columnWidth" />
       

你可能感兴趣的:(android)