`
fanguanghui
  • 浏览: 96882 次
  • 性别: 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方法中调用无效

相关推荐

    android用遍历的方法对界面中控件设置字体样式

    在Android开发中,有时我们需要统一地为应用中的所有控件设置特定的字体样式,以保持界面的视觉一致性。本文将详细讲解如何通过遍历的方法来实现这一目标。 首先,我们需要理解Android界面的基本构成。Android界面...

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

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

    遍历窗体中的所有控件

    在Windows编程领域,遍历窗体中的所有控件是一项常见的任务,特别是在开发用户界面时,我们需要获取或操作界面上的各个元素。这个压缩包提供的源码实现了一个实用工具,允许用户通过输入窗体标题的部分字符来查找并...

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

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

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

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

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

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

    QT遍历窗体的控件的方法

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

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

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

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

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

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

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

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

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

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

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

    MFC 改变静态文本字体大小

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

    qt 自适应类,可以自适应调整控件字体大小,间距等

    qt 适应分辨率,自适应类,可以自适应调整控件字体大小,间距等。控件和窗口,针对分辨率和窗口变化,进行变化适应。是布局的不错的补充,利用好了,控件伸缩自如。

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

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

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

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

    Android Switch控件自定义

    在Android开发中,Switch控件是一种常用的开关组件,它提供了开和关两种状态,通常用于用户界面中的布尔选择。在Android SDK中,Switch是android.widget.CompoundButton的一个子类,继承了ToggleButton的功能,提供...

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

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

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

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

    VC++遍历对话框中的子控件

    在VC++编程环境中,对话框(Dialog)是用户与应用程序交互的重要界面元素,它通常包含多个子控件,如按钮、文本框、复选框等。遍历对话框中的子控件是一项基本任务,用于获取用户输入、设置控件属性或执行其他操作。...

Global site tag (gtag.js) - Google Analytics