『壹』 android中如何設置不規則布局
android 常用布局
1、線性布局 LinearLayout:
線性布局是所有布局中最常用的類之一,也是RadioGroup, TabWidget, TableLayout, TableRow, ZoomControls類的羨讓態父類。LinearLayout可以讓它的子元素垂直或水平的方式排成一行(不設置方向的時候默認按照垂直方向排列)。
舉個例子:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<!--
android:id —— 為控制項指定相應的ID
android:text —— 指定控制項當中顯示的文字,需要注意的是,這里盡量使用strings.xml文件當中的字元串
android:grivity —— 指定控制項的基本位置,比如說居中,居右等位置
android:textSize —— 指定控制項當中字體的大小
android:background —— 指定該控制項所使用的背景色,RGB命名法
android:width —— 指定控制項的寬度
android:height —— 指定控制項的高度
android:padding* —— 指定控制項的內邊距滑手,也就是說控制項當中的內容
android:layout_weight —— 控制項之間的權重比
android:sigleLine —— 如果設置為真的話,則將控制項的內容在同一行當中進行顯示
-->
<TextView
android:id="@+id/firstText"
android:text="第一行一行一行一行一行一行一行一行一行一行"
android:gravity="center_vertical"
android:textSize="35pt"
android:background="#aa0000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:paddingTop="20dip"
android:paddingRight="30dip"
android:paddingBottom="40dip"
android:layout_weight="1"
android:singleLine="true"/>
<TextView
android:id="@+id/secondText"
android:text="第二行"
android:gravity="center_vertical"
android:textSize="15pt"
android:background="#0000aa"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
2、相對布局 RelativeLayout
相對布局 RelativeLayout 允許子元素指定它們相對於其父元素或兄弟元素的位置,這是實際布局中最常用的布局方式之一。它靈活性大兄源很多,當然屬性也多,操作難度也大,屬性之間產生沖突的的可能性也大,使用相對布局時要多做些測試。
舉個例子:
<?xml version="1.0" encoding="utf-8"?>
<!--
android:layout_above 將該控制項的底部至於給定ID的控制項之上
android:layout_below 將該控制項的頂部至於給定ID的控制項之下
android:layout_toLeftOf 將該控制項的右邊緣和給定ID的控制項的左邊緣對齊
android:layout_toRightOf 將該控制項的左邊緣和給定ID的控制項的右邊緣對齊
android:layout_alignBaseline 該控制項的baseline和給定ID的控制項的baseline對齊
android:layout_alignBottom 將該控制項的底部邊緣與給定ID控制項的底部邊緣
android:layout_alignLeft 將該控制項的左邊緣與給定ID控制項的左邊緣對齊
android:layout_alignRight 將該控制項的右邊緣與給定ID控制項的右邊緣對齊
android:layout_alignTop 將給定控制項的頂部邊緣與給定ID控制項的頂部對齊
android:alignParentBottom 如果該值為true,則將該控制項的底部和父控制項的底部對齊
android:layout_alignParentLeft 如果該值為true,則將該控制項的左邊與父控制項的左邊對齊
android:layout_alignParentRight 如果該值為true,則將該控制項的右邊與父控制項的右邊對齊
android:layout_alignParentTop 如果該值為true,則將空間的頂部與父控制項的頂部對齊
android:layout_centerHorizontal 如果值為真,該控制項將被至於水平方向的中央
android:layout_centerInParent 如果值為真,該控制項將被至於父控制項水平方向和垂直方向的中央
android:layout_centerVertical 如果值為真,該控制項將被至於垂直方向的中央
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Type here:" />
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label" />
<Button android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel" />
</RelativeLayout>
3、表單布局 TableLayout
和TableRow配合使用,和HTML里的Table相似。
舉個例子:
<?xml version="1.0" encoding="utf-8" ?>
- <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1">
- <TableRow>
<TextView android:layout_column="1" android:text="打開..." android:padding="3dip" />
<TextView android:text="Ctrl-O" android:gravity="right" android:padding="3dip" />
</TableRow>
- <TableRow>
<TextView android:layout_column="1" android:text="保存..." android:padding="3dip" />
<TextView android:text="Ctrl-S" android:gravity="right" android:padding="3dip" />
</TableRow>
- <TableRow>
<TextView android:layout_column="1" android:text="另存為..." android:padding="3dip" />
<TextView android:text="Ctrl-Shift-S" android:gravity="right" android:padding="3dip" />
</TableRow>
<View android:layout_height="2dip" android:background="#FF909090" />
- <TableRow>
<TextView android:text="*" android:padding="3dip" />
<TextView android:text="導入..." android:padding="3dip" />
</TableRow>
- <TableRow>
<TextView android:text="*" android:padding="3dip" />
<TextView android:text="導出..." android:padding="3dip" />
<TextView android:text="Ctrl-E" android:gravity="right" android:padding="3dip" />
</TableRow>
<View android:layout_height="2dip" android:background="#FF909090" />
- <TableRow>
<TextView android:layout_column="1" android:text="退出" android:padding="3dip" />
</TableRow>
</TableLayout>
4、切換卡 Tabwidget
繼承TabActivity,實現標簽的切換功能。
舉個例子:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="this is a tab" />
<TextView
android:id="@+id/textview2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="this is another tab" />
<TextView
android:id="@+id/textview3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="this is a third tab" />
</FrameLayout>
</LinearLayout>
</TabHost>
其他布局:
1、幀布局 FrameLayout:
是最簡單的一個布局對象。在他裡面的的所有顯示對象愛你過都將固定在屏幕的左上角,不能指定位置,但允許有多個顯示對象,只是後一個會直接覆蓋在前一個之上顯示,會把前面的組件部分或全部擋住。
舉個例子:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:text="big"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50pt"/>
<TextView
android:text="middle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20pt"/>
<TextView
android:text="small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10pt"/>
</FrameLayout>
2、絕對布局 AbsoluteLayout
絕對定位AbsoluteLayout,又可以叫做坐標布局,可以直接指定子元素的絕對位置,這種布局簡單直接,直觀性強,但是由於手機屏幕尺寸差別比較大,使用絕對定位的適應性會比較差。解析度不一樣的屏幕,顯示的位置也會有所不同。
舉個例子:
< ?xml version="1.0" encoding="utf-8"?>
< AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
< EditText
android:text="Welcome to Mr Wei's blog"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
< Button
android:layout_x="250px" //設置按鈕的X坐標
android:layout_y="40px" //設置按鈕的Y坐標
android:layout_width="70px" //設置按鈕的寬度
android:layout_height="wrap_content"
android:text="Button"/>
< /AbsoluteLayout>
『貳』 android 如何繪制不規則按鈕
imagebutton 至於說到的按下的有效區域只是視覺效果讓你感覺氏答模像是而已 設置了形狀以外的殲緩區域為透明色點擊時候自然會覺得有效區只舉銷是按鈕
『叄』 android開發中,點擊一個按鈕,周圍出現三個按鈕
先把3個按鈕隱藏,點擊了按鈕A,就顯示3個按鈕
我試了下,可以的
test.xml:
java"><?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayoutxmlns:android="
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/btA"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:text="按鈕A"/>
<Button
android:id="@+id/btB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/btA"
android:text="按鈕B"/>
<Button
android:id="@+id/btD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/btA"
android:text="按鈕D"/>
<Button
android:id="@+id/btC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/btA"
android:layout_toLeftOf="@+id/btD"
android:text="按鈕C"/>
</RelativeLayout>
TestActivity:
packagecom.example.androidtest;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.Toast;
{
privateButtonbtA;
privateButtonbtB;
privateButtonbtC;
privateButtonbtD;
privatebooleanisVisible=true;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
btA=(Button)findViewById(R.id.btA);
btB=(Button)findViewById(R.id.btB);
btC=(Button)findViewById(R.id.btC);
btD=(Button)findViewById(R.id.btD);
btB.setVisibility(View.INVISIBLE);
btC.setVisibility(View.INVISIBLE);
btD.setVisibility(View.INVISIBLE);
btA.setOnClickListener(newOnClickListener(){
@Override
publicvoidonClick(Viewv){
if(isVisible){
btB.setVisibility(View.VISIBLE);
btC.setVisibility(View.VISIBLE);
btD.setVisibility(View.VISIBLE);
isVisible=false;
}else{
btB.setVisibility(View.INVISIBLE);
btC.setVisibility(View.INVISIBLE);
btD.setVisibility(View.INVISIBLE);
isVisible=true;
}
}
});
}
}
『肆』 android 如何定義不規則軟鍵盤
在activity中使用的叢罩時候,首先要屏蔽掉系統軟鍵盤,然後在輸入框獲取焦棗凱點的時候彈出你的鍵盤就OK了,鍵盤你可以用button來實現,或者就用一張圖片算坐標重寫ontouch都行;點數字的時候你滲岩鬧就把你點的那個數字settext到你的輸入框里,delete的時候你就把你輸入框的文字去掉一位就OK了。如果讓我做的話思路大概是這樣的!
『伍』 android中如何設置不同形狀的按鈕
直接把按鈕的樣式換成別的圖片不久好了android:background="@drawable/btn_bg"。。然後設置個點擊效果xml
drawable/btn_bg.xml
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/press"/> <item android:state_pressed="false" android:drawable="@drawable/normal"/></selector>
『陸』 android界面的不規則布局
一般不規則的都是用空布局,然後控制項的位置都是定死的。
『柒』 在android中按鈕共分為幾種
從控制項來說分為2種:button(一般按鈕)和ImageButton(圖片按鈕);
但是大部分時候,開發者是可以通過各種方式自定義按鈕,這樣的話,界面呈現出來的按鈕是多種多樣的;
TextView,view等等,很多控制項其實都可以拿來當按鈕使用;
此外,還有包括ToggleButton,單選按鈕,多選按鈕等這些都屬於是功能比較專一的特殊按鈕了;
我想你只有對android比較了解的情況下,才可能理解深一些吧!