天天看點

android 動态設定螢幕控件寬高度

擷取螢幕寬高度:

WindowManager wm = (WindowManager) context
				.getSystemService(Context.WINDOW_SERVICE);
		DisplayMetrics outMetrics = new DisplayMetrics();
		wm.getDefaultDisplay().getMetrics(outMetrics);
           
outMetrics.widthPixels
           
outMetrics.heightPixels
           
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linear1);//找到xml上的控件
        LinearLayout linearLayout2 = (LinearLayout) findViewById(R.id.linear3);//找到xml上的控件
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(widths,DensityUtils.dp2px(context,40));//設定控件的寬高
        ImageView imageView = new ImageView(context);//動态添加imageview控件
        imageView.setBackground(getResources().getDrawable(R.mipmap.shishi_lefttup));//設定背景圖檔
        ImageView imageview2 = new ImageView(context);
        imageview2.setBackground(getResources().getDrawable(R.mipmap.shishi_rightup));
        linearLayout.addView(imageView,params);//把控件添加到LinearLayout裡面去
        linearLayout2.addView(imageview2,params);
           
為什麼需要這麼麻煩呢,有時候xml不能滿足現狀的需求 設定控件的寬高度: 先還是要擷取螢幕的寬高度
imageView=(ImageView)findViewById(R.id.imageView1);//擷取目前控件的對象
LinearLayout.LayoutParams params= (LinearLayout.LayoutParams) imageView.getLayoutParams();
//擷取目前控件的布局對象
params.height=width/2;//設定目前控件布局的高度width是螢幕寬度
imageView.setLayoutParams(params);//将設定好的布局參數應用到控件中
           
這裡把imageview看做是linearlayout的子視圖 不一定是LinearLayout也可以是其他relativelayout也可以的 推薦:http://blog.csdn.net/Djoli/article/details/62417328 http://blog.csdn.net/James_shu/article/details/53363234