⑴ android 動態生成控制項,怎麼設置控制項的大小
一、方法
使用getLayoutParams() 和setLayoutParams()方法
二、示例代碼
LinearLayout.LayoutParams linearParams = (LinearLayout.LayoutParams) aaa.getLayoutParams();
// 取控制項aaa當前的布局參數
linearParams.height = 365; // 當控制項的高強制設成365象素
aaa.setLayoutParams(linearParams); // 使設置好的布局參數應用到控制項aaa
三、原理
a)getLayoutParams()和setLayoutParams()都是控制項基類view的public方法,在外部也可以直接調用。
b)由於LayoutParams一般是在加入容器中設置的,所以容易混淆所指定的布局屬性究竟是保存在容器中,還是控制項本身的屬性,答案是控制項本身。但是在設置時還是要注意布局屬性與容器種類密切相關。
⑵ android 動態添加button並設置選中
Button 沒有選中和不選中的狀態,如果要選中或者不選中,要使用Android提供的RadioGroup+RadioButton 或者使用CheckBox這些控制項。
RadioGroup+RadioButton Android會自動的選中,只會有一個選中。
CheckBox需要寫狀態去控制。
⑶ android 怎麼獲得動態創建的button的text
你把xml中的Button刪掉,代碼中
btn=new Button(this);在這一行後,加一句這個:
btn.setText(R.string.btn_text);//給button賦一個初始的值
⑷ 請問:android如何動態添加控制項,給控制項添加「坐標」,「大小」等,求~~~~
在代碼中可以動態的添加、移除控制項;可以先獲得一個layout的根標簽layoutview,然後使用layoutview.addview(XXX),layoutview.removeview(XXX)之類的方法,動態添加、移除view,代碼中也是可以控制布局的,找點資料看看就明白了,幾句話也說不太明白。
⑸ android動態添加按鈕並保存設置,再次進入程序時能直接操作第一次添加保存的按鈕
在代碼中動態創建一個button2(Button button2 = new Button(this)),然後把button2添加的你的布局中,比如你的布局是線性布局的話,linearlayout.addView(button2);然後需要SharedPreferences來保存button2可見的這個屬性值,設置button2的可見屬性,第一次默認為隱藏,button2.setVisibility(View.GONE),然後在button1設置它的點擊事件,當點擊後,修改button2的可見屬性,並修改SharedPreferences里的屬性值,這樣,每次你進入程序後,先讀SharedPreferences里的設置,來判斷是否顯示button2,然後你可以通過點擊button1,來修改button2是否可見的屬性,來達到點擊button1創建一個button2的目的。
⑹ 用Android開發,在代碼中動態生成Button按鈕,能設置這個按鈕的坐標嗎,怎麼設置呢
設置按鈕坐標,需要上一層是絕對布局,然後在用 button.setLayoutParams(params);設置button出現的位置
⑺ android如何根據資料庫里的信息動態生成按鈕
用代碼創建按鈕就好了,想創建多少就創建多少
你在layout裡面放一個view
Button btn1=new Button(this);
btn.setTag="":
btn.setOnClickListener(this);
view.add(btn1)
⑻ android如何在當前頁面上動態顯示播放按鈕
有2中方案:
1、在布局中放置播放按鈕,默認是隱藏的,在需要的時候,代碼中設置顯示
2、在代碼中動態創建按鈕
示例代碼:
第一種方案
布局文件
<LinearLayout>
<Button
android:id="@+id/ItemTitle"
android:visibility="gone"/>//android:visibility屬性設置不可見
</LinearLayout>
java代碼中
Buttonbtn=(Button)findViewById(R.id.ItemTitle);//根據id查找按鈕
btn.setVisible(View.Visible);//設置按鈕可見
第二種方案
RelativeLayoutlayout=newRelativeLayout(this);
Buttonbtn=newButton(this);//創建按鈕
RelativeLayout.LayoutParamsbtParams=newRelativeLayout.LayoutParams((width-50)/4,40);//設置按鈕的寬度和高度
btParams.leftMargin=10+((width-50)/4+10)*(i%4);//橫坐標定位
btParams.topMargin=20+55*j;//縱坐標定位
layout.addView(btn,btParams);//將按鈕放入layout組件
this.setContentView(layout);//界面顯示
⑼ Android開發中,如何給動態生成的Button指定Style樣式
自定義樣式方法,可以直接通過定義xml文件來實現不同的樣式:
只需要修改button_style文件,同樣三種狀態分開定義:
Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<gradient android:startColor="#0d76e1" android:endColor="#0d76e1"
android:angle="270" />
<stroke android:width="1dip" android:color="#f403c9" />
<corners android:radius="2dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true">
<shape>
<gradient android:startColor="#ffc2b7" android:endColor="#ffc2b7"
android:angle="270" />
<stroke android:width="1dip" android:color="#f403c9" />
<corners android:radius="2dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient android:startColor="#000000" android:endColor="#ffffff"
android:angle="180" />
<stroke android:width="1dip" android:color="#f403c9" />
<corners android:radius="5dip" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
</item>
</selector>
gradient 主體漸變 startColor開始顏色,endColor結束顏色 ,angle開始漸變的角度(值只能為90的倍數,0時為左到右漸變,90時為下到上漸變,依次逆時針類推)
stroke 邊框 width 邊框寬度,color 邊框顏色
corners 圓角 radius 半徑,0為直角
padding text值的相對位置
⑽ Android 動態布局該如何實現!!
你的問題應該是要動態生成空間吧。
下面的答案可以參考下。
首先要卻這個界面的布局,是AbsoluteLayout,RelativeLayout還是其他,然後就可以再裡面添加控制項了:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//確定界面的布局
AbsoluteLayout abslayout=new AbsoluteLayout (this);
setContentView(abslayout);
//創建一個button按鈕
Button btn1 = new Button(this);
btn1.setText(」this is a button」);
btn1.setId(1);
//確定這個控制項的大小和位置
AbsoluteLayout.LayoutParams lp1 =
new AbsoluteLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
0,100);
abslayout.addView(btn1, lp1 );
}
一個界面可以布置一個布局,可以多個布局一起設計:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//設置界面的布局
RelativeLayout relativeLayout = new RelativeLayout(this);
setContentView(relativeLayout);
//添加一個AbsoluteLayout子布局,並給這個布局添加一個button
AbsoluteLayout abslayout=new AbsoluteLayout (this);
abslayout.setId(11);
Button btn1 = new Button(this);
btn1.setText(」this is a abslayout button」);
btn1.setId(1);
AbsoluteLayout.LayoutParams lp0 = new AbsoluteLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,100,0);
abslayout.addView(btn1, lp0 );
//將這個子布局添加到主布局中
RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
relativeLayout.addView(abslayout ,lp1);
//再添加一個子布局
RelativeLayout relativeLayout1 = new RelativeLayout(this);
Button btn2 = new Button(this);
btn2.setText(」this is a relativeLayout1 button」);
btn2.setId(2);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
lp2.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
relativeLayout1.addView(btn2 ,lp2);
//將這個布局添加到主布局中
RelativeLayout.LayoutParams lp11 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp11.addRule(RelativeLayout.BELOW ,11);
relativeLayout.addView(relativeLayout1 ,lp11);
}