`
yxwang0615
  • 浏览: 560773 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

android setContentView()

 
阅读更多

setContentView(int)

用在初始化Activity的oncreate()中,作用是给页面指定布局文件资源

 

setContentView(View view)

Android如何绘制视图:

当Activity获得焦点时,其就会被要求绘制其布局,android框架会处理具体的绘制功能,但是其布局的继承关系的根节点必须由Activity提供。绘制的时候从模板的根节点开始,计算和绘制布局树。绘制动作会遍历布局节点树,然后渲染每个节点视图,每个父节点有责任绘相邻的子节点。

从以上描述可以看出,这个方法的作用是提供布局继承关系的根节点

 

example:

 

 

	private LinearLayout mLinearLayout;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		mLinearLayout = new LinearLayout(this);
		mLinearLayout.setBackgroundColor(Color.GRAY);
		mLinearLayout.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
		ImageView iv = new ImageView(this);
		iv.setImageResource(R.drawable.icon);
		//设置图片是否超过View的边界
		iv.setAdjustViewBounds(true);
		iv.setLayoutParams(new Gallery.LayoutParams(Gallery.LayoutParams.WRAP_CONTENT, Gallery.LayoutParams.WRAP_CONTENT));
		//添加子节点
		mLinearLayout.addView(iv);
		//Both the width and the height of the view are set by default to MATCH_PARENT
		setContentView(mLinearLayout);
	}

 运行效果是mLinearLayout全屏显示了,因为setContentView(View view)会忽略view的布局参数,代码中设置mLinearLayout.setLayoutParams()是无效的。如果想指定mLinearLayout的布局参数,

可以使用setContentView (View view, ViewGroup.LayoutParams params)方法

 

setContentView(mLinearLayout, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
 

 


 

 

分享到:
评论
2 楼 accelater 2012-03-09  
   
1 楼 yjm199 2012-02-27  

相关推荐

    浅析Android Dialog中setContentView()方法

    "浅析Android Dialog中setContentView()方法" 通过对Android Dialog中setContentView()方法的分析,可以了解到该方法的实现原理和使用方式。setContentView()方法是Dialog中自定义内容布局的重要方法,它提供了三个...

    深入解析Android中的setContentView加载布局原理

    在Android应用开发中,`setContentView`是一个至关重要的方法,用于将XML布局文件加载到活动(Activity)中,成为用户界面的基础。这个方法是每个Activity生命周期的起点,它告诉系统如何构建活动的视图结构。下面...

    android切换页面实例setContentView+layoutinflate完美切换页面

    setContentView最大限度的提高切换页面的速度,一定要和LayoutInflate配合使用,解决切换后监听无效,要多次findViewById多次绑定监听的问题。这是我自己写的一个小例子,详解参见:...

    Activity使用setContentView切换界面

    综上所述,`Activity`的`setContentView`方法是实现界面切换的关键,通过合理使用和理解其工作原理,开发者可以构建出更加丰富和动态的Android应用。在实际开发中,要结合Android的生命周期管理和返回栈管理,以实现...

    setContentView学习例子

    在Android应用开发中,`setContentView`是一个至关重要的方法,它是连接XML布局文件与Java代码的关键,用于在Activity中加载用户界面。当我们谈论"界面切换"时,这通常涉及到在不同视图或屏幕之间平滑地过渡。在这个...

    Android开发教程_012_创建Activity调用setContentView 标清.flv

    Android开发教程_012_创建Activity调用setContentView 标清

    手机页面的转换--setContentView的应用

    `setContentView()`是Android中的一个关键函数,用于加载布局文件到Activity,从而使用户能在界面上看到内容。下面我们将深入探讨`setContentView()`的应用及其在手机页面转换中的作用。 首先,我们需要理解Android...

    Android demo Android helloworld

    setContentView(R.layout.activity_main); TextView helloTextView = findViewById(R.id.hello_text_view); helloTextView.setText("Hello, World!"); } } ``` - **XML布局**:在`res/layout/activity_main....

    android抽屉菜单 android panel

    setContentView(R.layout.activity_main); drawerLayout = findViewById(R.id.drawer_layout); navigationView = findViewById(R.id.nav_view); // 设置点击菜单项时关闭抽屉 navigationView....

    Android Studio 插件android-butterknife-zelezny.jar

    setContentView(R.layout.activity_main); ButterKnife.bind(this); } } ``` 这样,你就不需要手动为每个视图创建成员变量和`findViewById()`调用,大大提高了开发效率。同时,由于代码更整洁,也使得项目更易于...

    android复制抖音评论框

    dialog.setContentView(R.layout.bottom_sheet_dialog_comment); ``` 3. **添加功能**: - **输入框**:监听输入框的文本变化,以便在用户完成评论后可以执行相关操作。 - **表情选择**:点击表情按钮时,可以弹...

    Android开发中setContentView和inflate的区别分析

    在Android开发中,UI界面的构建是应用程序的重要组成部分。通常,我们有两种方式来加载和展示布局:`setContentView()` 和 `inflate()`。这两者在功能和使用场景上有所区别,理解它们的不同可以帮助开发者更有效地...

    android 界面 渐变背景颜色

    setContentView(R.layout.login); // 设置登录界面布局 } } ``` ### 扩展功能与注意事项 - **类型选择**:`<gradient>`还支持径向渐变(`radial`)、线性渐变(`linear`,默认类型)和扫描渐变(`sweep`),可...

    Android Studio通过Handler制作简单的计时器

    setContentView(R.layout.activity_main); tvTimer = findViewById(R.id.tv_timer); btnStart = findViewById(R.id.btn_start); btnStop = findViewById(R.id.btn_stop); handler = new Handler() { @...

    原创android界面效果全汇总.pdf

    setContentView(R.layout.activity_splash_screen); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent mainIntent = new Intent(SplashScreen.this, MainActivity.class); ...

    Android获取硬件序列号实例

    setContentView(R.layout.activity_main); // 获取硬件序列号 String serialNumber = Build.SERIAL; // 在界面上显示序列号 TextView textView = findViewById(R.id.textView); textView.setText("硬件...

    Android WebView 去除标题

    setContentView(webView); ``` 这段代码会创建一个新的WebView实例,并加载指定的URL。默认情况下,WebView会显示一个带有返回按钮和其他控件的标题栏,这些是系统提供的默认行为。 要去除这个标题栏,我们可以...

Global site tag (gtag.js) - Google Analytics