`
fanguanghui
  • 浏览: 95985 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

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 );
		}
	}

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

 

分享到:
评论
2 楼 xiangxm 2013-12-19  
zwj2009 写道
请问changeLayoutParams方法你是在什么时间调用呢

我在onCreate方法中调用无效

你可以放在onWindowFocusChanged里面
1 楼 zwj2009 2012-04-06  
请问changeLayoutParams方法你是在什么时间调用呢

我在onCreate方法中调用无效

相关推荐

    C# winfrom控件、字体大小位置随分辨率而变化.

    ### C# WinForms 控件、字体大小位置随分辨率变化实现方法 #### 一、引言 在开发基于 Windows 的桌面应用程序时,确保用户界面(UI)元素能够在不同分辨率的显示器上正确显示非常重要。特别是在使用 Microsoft ...

    c# 控件大小(及字体)随窗口大小改变自动缩放

    以上代码中,我们假设了一个基准窗口宽度800像素,并根据当前窗口的宽度计算出缩放比例,然后应用到所有控件的字体大小上。 在实际开发中,还可以结合使用LayoutTransform、RenderTransform等技术,以及自定义布局...

    ASP.NET 页面控件遍历

    遍历页面控件通常是为了访问或操作这些控件,无论它们是直接在页面上定义的还是在代码后面动态添加的。 1. **控件树的概念**:每个ASP.NET Web表单都有一个控件树,它包含了页面上所有控件的层次结构。遍历就是沿着...

    android代码中获取控件高,宽度并修改

    本文将详细讲解如何在代码中获取控件的高度和宽度,并且如何修改这些尺寸以达到预期的显示效果。 首先,我们来探讨如何获取控件的尺寸。在Android中,控件的尺寸分为两种:测量尺寸(measured dimensions)和实际...

    C#控件大小(及字体)随窗口改变自动缩放

    在C#编程中,开发GUI应用程序时,常常需要创建各种控件,如按钮、文本框等,这些控件的大小和字体需要根据窗口的尺寸变化进行动态调整,以确保用户界面在不同分辨率的屏幕上都能保持良好的显示效果。这就涉及到控件...

    c# 美化界面 换肤 遍历页面控件

    实现这一功能的关键在于编写代码动态地改变控件的外观属性,这可能包括颜色、图片、字体等。例如,可以为每个控件创建一个皮肤类,存储皮肤属性,然后在运行时更新控件的皮肤属性。 遍历页面控件是一项常用的技术,...

    QT遍历窗体的控件的方法

    ### QT遍历窗体的控件的方法 在QT框架中,有时我们需要遍历窗体上的所有控件以执行某些操作,比如更改按钮的文字、获取所有输入框的信息等。本文将详细介绍几种不同的方法来实现这一需求。 #### 方法一:直接遍历...

    QT 窗体、控件、字体自适应分辨率

    然后,对所有子控件应用这个比例来改变它们的大小,同时调整字体大小。 在压缩包中的`Adapter_resolution`文件可能包含了实现这一功能的源代码示例,可能包括窗体的定义、布局的设置以及处理窗口大小变化的代码。...

    C# Winform遍历控件(窗体、Panel的子控件)Controls

    ### C# Winform遍历控件(窗体、Panel的子控件)Controls #### 一、概述 在Windows Forms (Winform) 开发中,窗体(Form)扮演着非常重要的角色,它是一个可以容纳多种控件的大容器。除了基本的控件如Button、...

    Android 设置全局字体大小

    在Android开发中,有时我们需要为应用程序提供全局的字体大小调整功能,以便用户可以根据个人偏好或视力需求定制界面显示。本文将深入探讨如何实现这一功能,主要基于提供的标题"Android 设置全局字体大小"和描述...

    ASP.NET套用母版页的页面控件遍历

    在处理复杂的交互或数据绑定时,有时需要遍历页面上的所有控件,包括母版页和内容页中的控件。本篇文章将深入探讨如何在ASP.NET中实现这一功能。 1. 母版页的概念与作用: - 母版页提供了一种统一的方式,为多个...

    TextView的字体自适应控件的大小

    当我们需要在`TextView`中展示大量文字,并希望它能自动适应屏幕大小和内容长度时,就需要用到字体自适应的技术。标题“TextView的字体自适应控件的大小”描述的就是这个功能,它是通过动态调整字体大小来确保文本...

    Demo,测试字体大小随着控件大小自适应变化

    在IT行业中,尤其是在GUI(图形用户界面)设计与开发中,如何使文本内容随着控件尺寸的变化自动调整字体大小是一项重要的技术。这个“Demo,测试字体大小随着控件大小自适应变化”就是一个针对这一需求的具体实例。...

    MFC 对话框中控件随对话框大小改变而改变

    上述代码中,我们遍历了对话框的所有子窗口(控件),对每个控件进行大小调整。这个示例仅针对CButton控件,但你可以根据需要扩展到其他类型的控件,如CEdit、CListBox等。 为了方便使用,我们可以创建一个公共成员...

    MFC 改变静态文本字体大小

    该函数的参数包括字体高度、字体宽度、字体显示的角度、字体角度、字体的磅数、斜体字体、带下划线的字体、带删除线的字体、所需的字符集、输出的精度、裁减的精度、逻辑字体与输出设备的实际字体之间的精度、字体...

    android 可以根据数值动态改变控件的大小的控件

    在Android开发中,为了实现更具灵活性和个性化的用户界面,我们常常需要根据程序运行时的数值动态地调整控件的大小。这样的需求可以应用于各种场景,例如数据可视化、游戏界面或者响应式布局等。本篇将详细介绍如何...

    VC启动并遍历主窗体的所有控件

    - 遍历过程中,要确保处理控件的代码不会影响到其他操作,如改变控件属性,这可能会影响到遍历的顺序或导致未预期的结果。 - 控件类名和ID可以用于识别特定类型的控件,如按钮、文本框等,以便进一步处理。 - ...

    MFC窗口控件随窗口大小进行自适应

    "MFC窗口控件随窗口大小进行自适应"是一个常见的需求,尤其是在设计用户界面时,为了提供良好的用户体验,控件需要能够随着窗口尺寸的变化自动调整其大小和位置。本项目实现的正是这一功能,通过封装`WidgetResize`...

    Delphi实现控件拖动及改变大小

    在Delphi编程环境中,控件的拖动与改变大小是常见的交互设计,它极大地提升了用户界面的可操作性和用户体验。本篇文章将详细讲解三种在Delphi中实现控件拖动和改变大小的方法。 首先,我们要了解Delphi中的基本控件...

    VC控件大小和字体设置

    在VC++开发中,对控件的大小和字体设置是创建用户界面时不可或缺的一部分。控件的尺寸调整和字体配置直接影响到程序的视觉效果和用户体验。以下是对"VC控件大小和字体设置"这一主题的详细说明: 1. **控件大小的...

Global site tag (gtag.js) - Google Analytics