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

1.遍历界面控件

 

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

Java代码   收藏代码
  1. LinearLayout myLayOut = (LinearLayout)findViewById(R.id.tableLayout1);  

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

 

可以用这句得到

Java代码   收藏代码
  1. LinearLayout loginLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.main, null);  

 

Java代码   收藏代码
  1. for (int i = 0; i < myLayOut.getChildCount(); i++) {  
  2.   
  3. View v = myLayOut.getChildAt(i);  
  4. if ( v instanceof ImageView){  
  5. ImageView myImageView = (ImageView)myLayOut.getChildAt(i);  
  6. myImageView.setOnClickListener(new myOnclickListener());  
  7. }  
  8. }  

注:只能得到一级子View

 

2.适应全屏修改大小

 

Java代码   收藏代码
  1. changeLayoutParams(R.id.tableLayout1);  

 

Java代码   收藏代码
  1. protected void changeLayoutParams(int layoutId){  
  2.   final View view = (View) findViewById(layoutId);  
  3.   ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();  
  4.   viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {  
  5.     boolean isFirst = true;  
  6.             @Override  
  7.             public void onGlobalLayout() {  
  8.       if (isFirst) {    
  9.              isFirst = false//执行一次 不这样设置 他会一直执行  
  10.                          int height = view.getMeasuredHeight();  
  11.                          int width = view.getMeasuredWidth();  
  12.                          //viewGroup 适应所有父布局控件  
  13.                          ViewGroup.LayoutParams linearParams = (ViewGroup.LayoutParams) view.getLayoutParams();  
  14.                      linearParams.width = (int) (width*scale);  
  15.                      linearParams.height = (int) (height*scale); //在原有的高度 宽度放大倍数  
  16.                     view.setLayoutParams(linearParams);  
  17.                  }  
  18.             }  
  19.         });  
  20.         if(view instanceof TextView){  
  21.             ((TextView) view).setTextSize( 24  );  
  22.         }else if(view instanceof EditText){  
  23.             ((EditText) view).setTextSize(  24);  
  24.         }else if(view instanceof Button){  
  25.             ((Button) view).setTextSize( 24 );  
  26.         }else if(view instanceof RadioButton){  
  27.             ((RadioButton) view).setTextSize( 24 );  
  28.         }  
  29.     }  

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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值