Android界面控件遍历代码 改变宽度 高度 字体大小适应屏幕

1.遍历界面控件

 

用instanceof来判断是否是指定的控件类型

LinearLayout myLayOut = (LinearLayout)findViewById(R.id.tableLayout1);

LinearLayout 是父控件名称,根据你自己的修改

 

可以用这句得到

LinearLayout loginLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.main, null);

 

for (int i = 0; i < myLayOut.getChildCount(); i++) {

View v = myLayOut.getChildAt(i);
if ( v instanceof ImageView){
ImageView myImageView = (ImageView)myLayOut.getChildAt(i);
myImageView.setOnClickListener(new myOnclickListener());
}
}

注:只能得到一级子View

 

2.适应全屏修改大小

 

changeLayoutParams(R.id.tableLayout1);

 

protected void changeLayoutParams(int layoutId){
  final View view = (View) findViewById(layoutId);
  ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();
  viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    boolean isFirst = true;
            @Override
            public void onGlobalLayout() {
      if (isFirst) {  
             isFirst = false; //执行一次 不这样设置 他会一直执行
                         int height = view.getMeasuredHeight();
                         int width = view.getMeasuredWidth();
                         //viewGroup 适应所有父布局控件
                         ViewGroup.LayoutParams linearParams = (ViewGroup.LayoutParams) view.getLayoutParams();
    		         linearParams.width = (int) (width*scale);
    		         linearParams.height = (int) (height*scale); //在原有的高度 宽度放大倍数
    		        view.setLayoutParams(linearParams);
            	 }
            }
		});
		if(view instanceof TextView){
			((TextView) view).setTextSize( 24  );
		}else if(view instanceof EditText){
			((EditText) view).setTextSize(  24);
		}else if(view instanceof Button){
			((Button) view).setTextSize( 24 );
		}else if(view instanceof RadioButton){
			((RadioButton) view).setTextSize( 24 );
		}
	}

注:文字大小也可以按比例缩放,不过手机与平板表现的不一样

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值