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));
分享到:
相关推荐
"浅析Android Dialog中setContentView()方法" 通过对Android Dialog中setContentView()方法的分析,可以了解到该方法的实现原理和使用方式。setContentView()方法是Dialog中自定义内容布局的重要方法,它提供了三个...
在Android应用开发中,`setContentView`是一个至关重要的方法,用于将XML布局文件加载到活动(Activity)中,成为用户界面的基础。这个方法是每个Activity生命周期的起点,它告诉系统如何构建活动的视图结构。下面...
setContentView最大限度的提高切换页面的速度,一定要和LayoutInflate配合使用,解决切换后监听无效,要多次findViewById多次绑定监听的问题。这是我自己写的一个小例子,详解参见:...
综上所述,`Activity`的`setContentView`方法是实现界面切换的关键,通过合理使用和理解其工作原理,开发者可以构建出更加丰富和动态的Android应用。在实际开发中,要结合Android的生命周期管理和返回栈管理,以实现...
在Android应用开发中,`setContentView`是一个至关重要的方法,它是连接XML布局文件与Java代码的关键,用于在Activity中加载用户界面。当我们谈论"界面切换"时,这通常涉及到在不同视图或屏幕之间平滑地过渡。在这个...
Android开发教程_012_创建Activity调用setContentView 标清
`setContentView()`是Android中的一个关键函数,用于加载布局文件到Activity,从而使用户能在界面上看到内容。下面我们将深入探讨`setContentView()`的应用及其在手机页面转换中的作用。 首先,我们需要理解Android...
setContentView(R.layout.activity_main); TextView helloTextView = findViewById(R.id.hello_text_view); helloTextView.setText("Hello, World!"); } } ``` - **XML布局**:在`res/layout/activity_main....
setContentView(R.layout.activity_main); drawerLayout = findViewById(R.id.drawer_layout); navigationView = findViewById(R.id.nav_view); // 设置点击菜单项时关闭抽屉 navigationView....
setContentView(R.layout.activity_main); ButterKnife.bind(this); } } ``` 这样,你就不需要手动为每个视图创建成员变量和`findViewById()`调用,大大提高了开发效率。同时,由于代码更整洁,也使得项目更易于...
dialog.setContentView(R.layout.bottom_sheet_dialog_comment); ``` 3. **添加功能**: - **输入框**:监听输入框的文本变化,以便在用户完成评论后可以执行相关操作。 - **表情选择**:点击表情按钮时,可以弹...
在Android开发中,UI界面的构建是应用程序的重要组成部分。通常,我们有两种方式来加载和展示布局:`setContentView()` 和 `inflate()`。这两者在功能和使用场景上有所区别,理解它们的不同可以帮助开发者更有效地...
setContentView(R.layout.login); // 设置登录界面布局 } } ``` ### 扩展功能与注意事项 - **类型选择**:`<gradient>`还支持径向渐变(`radial`)、线性渐变(`linear`,默认类型)和扫描渐变(`sweep`),可...
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() { @...
setContentView(R.layout.activity_splash_screen); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent mainIntent = new Intent(SplashScreen.this, MainActivity.class); ...
setContentView(R.layout.activity_main); // 获取硬件序列号 String serialNumber = Build.SERIAL; // 在界面上显示序列号 TextView textView = findViewById(R.id.textView); textView.setText("硬件...
setContentView(webView); ``` 这段代码会创建一个新的WebView实例,并加载指定的URL。默认情况下,WebView会显示一个带有返回按钮和其他控件的标题栏,这些是系统提供的默认行为。 要去除这个标题栏,我们可以...