当前位置:首页 » 安卓系统 » android动态布局文件

android动态布局文件

发布时间: 2022-09-22 12:00:58

1. android怎样动态生成布局文件,指定控件显示位置

控件位置发生改变时
用SharedPreferences记录控件位置
第二次进入时读取记录了的内容,动态生成布局

2. android 如何实现动态添加布局

如下代码:
LinearLayout layout = new LinearLayout(this);
TextView tx = new TextView(this);
tx.setText('我是动态添加的');
layout.addView(tx);
setContentView(layout);

这就动态添加了一个线性布局,并且在布局里面加了一个textview

3. android程序中的布局文件

不是都写在main.xml中。默认的主activity默认的布局文件时main.xml,如果布局不一样,另一个activity设置另一个布局文件,和main.xml是并列的,也在layout文件夹下,使用setContentView(R.layout.XXX)设置。图片通常都放在res/drawable文件夹中,drawable一共有三个文件夹,高,中,低三种分辨率,放在哪个文件夹下自己决定吧。

4. android 动态设置布局宽度

例如设置一个图片宽高 关键代码:
//取控件当前的布局参数
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) imageView.getLayoutParams();
//设置宽度值
params.width = dip2px(MainActivity.this, width);
//设置高度值
params.height = dip2px(MainActivity.this, height);
//使设置好的布局参数应用到控件
imageView.setLayoutParams(params);
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
高度除了可以设置成以上固定的值,也可以设置成wrap_content或match_content
ViewGroup.LayoutParams.WRAP_CONTENT
ViewGroup.LayoutParams.MATCH_PARENT
1
2
1
2
在这里插入图片描述
xml

5. android中怎么动态的加载一个布局

由于前段时间项目需要,需要在一个页面上加载根据不同的按钮加载不同的布局页面,当时想到用 tabhot 。不过美工提供的界面图完全用不上tabhot ,所以想到了动态加载的方法来解决这一需求。在这里我整理了一下,写了一个 DEMO 希望大家以后少走点弯路。

首先,我们先把界面的框架图画出来,示意图如下:

6. android在指定布局文件动态生成控件

package zcy.com;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;


public class Show extends Activity {
private Button btNext;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.show1);
btNext=(Button)findViewById(R.id.next);
btNext.setOnClickListener(new Button.OnClickListener(){
public void onClick(View view){//创建一个布局管理器控件
LinearLayout linearLayout=new LinearLayout(Show.this);
setContentView(linearLayout);//设置orientation为horizontal,1表示为vertical
linearLayout.setOrientation(0);
TextView tvSecond=new TextView(Show.this);
tvSecond.setText("这是Android奉献给你的第二个页面");
Button btNext2=new Button(Show.this);
btNext2.setText("下一步");
btNext2.setId(2);
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(tvSecond,lp1);
linearLayout.addView(btNext2,lp1);
btNext2.setOnClickListener(new OnClickListener(){
public void onClick(View view){ //这次只放置一个TextView不需要布局管理器
TextView tv3=new TextView(Show.this);
tv3.setText("恭喜你已来到最后一个页面!");//直接让页面显示一个TextView
setContentView(tv3);
}
});
}
});
}
}

这里涉及到几个类的构造函数和方法,我把Android SDK文档中的内容直接引用过来:

Public Constructors

LinearLayout(Context context)

LinearLayout(Context context, AttributeSet attrs)

public void setOrientation (int orientation)

Should the layout be a column or a row.

Related XML Attributes

android:orientation

Parameters orientation Pass HORIZONTAL or VERTICAL. Default value is HORIZONTAL.

ConstantValueDescription

horizontal0 Defines an horizontal widget.

vertical1 Defines a vertical widget.

This corresponds to the global attribute resource symbol orientation.

Public Constructors

LinearLayout.LayoutParams(Context c, AttributeSet attrs)

LinearLayout.LayoutParams(int width, int height)

addView方法的定义在ViewGroup类中

//Adds a child view with the specified layout parameters.

voidaddView(View child, ViewGroup.LayoutParams params)

//Adds a child view with the specified layout parameters.

void addView(View child, int index, ViewGroup.LayoutParams params)

看一下这里的继承关系:

另外注意,为什么在传递Context参数时必须用Show.this而不能直接用this呢?因为此时我们已经进入了一个匿名类new Button.OnClickListener()中,虽然这个匿名类还是在Show类,但是我们的代码已经不再“直属”于Show类了。

7. android 如何实现动态添加布局

通过使用LayoutInflater 每次点击按钮时候去读取布局文件,然后找到布局文件里面的各个VIEW 操作完VIEW
后加载进我们setContentView 方面里面的要放的布局文件里面,每次动态加载文件必需 调用
removeAllViews方法,清除之前的加载进来的 View 。是不是很简单?当然动态加载VIEW
还有许多种方法,多尝试不同写法。可能会领会不一样的心得,祝你早上掌握android 的开发技术。
主要原理:在一个分割出来的大的Layout中(如图中的白色区域),使用layout.removeAllViews();和layout.addView();实现动态加载,其中要使用的LayoutInflater等。

8. android动态更新布局文件,然后生成ui界面,能实现吗

可以。但是完全要用代码来实现,不能使用xml文件来。onCreate里面不用setContentView,直接new View,然后根据解析的xml文件,使用代码加载布局。比如xml中有一个<Button id=1>haha</name>,那么解析后就new Button,setId(1),setText("haha"),然后根据位置等信息,view.add(button)……就这样一直加进去。

9. 很简单的送分题又来了,高手还不进来android如何动态include布局文件,答得好的追加100分

inflate函数可以见xml布局文件刷成view,然后java中获得activity的view的父节点,然后通过addview就可以动态加入你要的view了

10. android怎样动态生成布局文件,指定控件显示位置

控件位置发生改变时
用sharedpreferences记录控件位置
第二次进入时读取记录了的内容,动态生成布局

热点内容
蜗牛游戏安卓手机怎么更换账号 发布:2025-03-17 13:41:49 浏览:321
为什么人买一个苹果一个安卓 发布:2025-03-17 13:36:59 浏览:438
三星手机短信在那个文件夹 发布:2025-03-17 13:31:51 浏览:194
安卓皇帝隐藏剧情在哪里 发布:2025-03-17 13:18:53 浏览:507
新版安卓为什么不兼容 发布:2025-03-17 13:18:49 浏览:483
s3哪个配置性价比高 发布:2025-03-17 13:06:09 浏览:320
气体压缩能量 发布:2025-03-17 13:00:16 浏览:78
压缩油19 发布:2025-03-17 12:25:29 浏览:858
linux上网代理 发布:2025-03-17 12:23:56 浏览:361
c是高级语言吗 发布:2025-03-17 12:16:31 浏览:525