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 );
- }
- }
注:文字大小也可以按比例缩放,不过手机与平板表现的不一样