當前位置:首頁 » 安卓系統 » 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 17:23:46 瀏覽:446
安卓手機大圖怎麼瀏覽 發布:2025-03-17 17:09:11 瀏覽:982
電腦打開網頁伺服器沒有響應 發布:2025-03-17 17:09:11 瀏覽:192
手柄編程 發布:2025-03-17 17:06:07 瀏覽:191
iphone重啟緩存 發布:2025-03-17 16:57:56 瀏覽:634
phpfloat 發布:2025-03-17 16:56:35 瀏覽:175
誅心演算法題 發布:2025-03-17 16:30:00 瀏覽:397
磁吸介面和安卓介面哪個好用 發布:2025-03-17 16:29:54 瀏覽:458
編程經典思想 發布:2025-03-17 16:27:45 瀏覽:621
崩壞腳本 發布:2025-03-17 16:22:39 瀏覽:50