『壹』 android里能為下拉菜單設置監聽事件么
Spinner組件的主要功能是用於進行下拉列表顯示的功能,當用戶選中下拉列表中的某個選項之後可以使用Spinner類中提供的setOnItemClickListener()方法進行監聽。
下拉菜單監聽範例:
packagecom.richard.onitemselectedlistener;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.View;
importandroid.widget.AdapterView;
importandroid.widget.AdapterView.OnItemSelectedListener;
importandroid.widget.ArrayAdapter;
importandroid.widget.Spinner;
{
privateSpinnercity=null;//定義下拉列表框
privateSpinnerarea=null;//定義下拉列表框
privateString[][]areaData=newString[][]{//定義聯動菜單項
{"東城","西城","朝陽","大興","平谷"},//第一級子選項
{"黃浦","楊浦","閔行"},//第二級子選項
{"廣州"}};//第三級子選項
privateArrayAdapter<CharSequence>adapterArea=null;//下拉列表內容適配器
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);//父類onCreate()
super.setContentView(R.layout.activity_main);//調用布局管理器
this.city=(Spinner)super.findViewById(R.id.city);//取得組件
this.area=(Spinner)super.findViewById(R.id.area);//取得組件
this.city.setOnItemSelectedListener(
newOnItemSelectedListenerImpl());//設置監聽器
}
{
@Override
publicvoidonItemSelected(AdapterView<?>adapterView,Viewview,
intposition,longid){//選項選中時觸發
MainActivity.this.adapterArea=newArrayAdapter<CharSequence>(
MainActivity.this,
android.R.layout.simple_spinner_item,
MainActivity.this.areaData[position]);//實例化列表項
MainActivity.this.adapterArea.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);//設置下拉列表顯示風格
MainActivity.this.area
.setAdapter(MainActivity.this.adapterArea);//設置數據
}
@Override
publicvoidonNothingSelected(AdapterView<?>adapterView){//沒有選項時觸發
}
}
@Override
(Menumenu){
//Inflatethemenu;.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
}
『貳』 android 從底部彈出一個列表框點擊列表框的內容再同樣的彈出一個列表框,如此循環
這個用自定義dialog實現
dialog 的控制項,用你自己的布局, listView要使用自定義Adapter Window window = dialog.getWindow();
window.setGravity(Gravity.BOTTOM); //此處可以設置dialog顯示的位置
window.setWindowAnimations(R.style.mystyle); //添加動畫
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="mystyle" parent="android:Animation">
<item name="@android:windowEnterAnimation">@anim/dialog_enter</item> //進入時的動畫
<item name="@android:windowExitAnimation">@anim/dialog_exit</item> //退出時的動畫
</style>
</resources>
位於 res/anim/dialog_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p" %p指相對於父容器
android:ration="600"
/>
</set>
位於 res/anim/dialog_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toYDelta="100%p"
android:ration="600" //持續時間
/>
</set>
『叄』 如何自定義Android Dialog的樣式
如何自定義Android Dialog的樣式? Android 中自定義Dialog的樣式,主要是通過自定義的xml,然後載入到dialog的背景中,如下步驟:
1、自定義Dialog
final Dialog dialog = new Dialog(this, R.style.Theme_dialog);
2、窗口布局
View contentView = LayoutInflater.from(this).inflate(R.layout.select_list_dialog,null);
3、把設定好的窗口布局放到dialog中
dialog.setContentView(contentView);
4、設定點選視窗空白處取消會話
dialog.setCanceledOnTouchOutside(true);
5、具體的操作
ListView msgView = (ListView)contentView.findViewById(R.id.listview_flow_list);
6、展示視窗
dialog.show();例:final Dialog dialog = new Dialog(this,R.style.Theme_dialog);View contentView =LayoutInflater.from(this).inflate(R.layout.select_list_dialog, null);dialog.setContentView(contentView);dialog.setCanceledOnTouchOutside(true);ListView msgView = (ListView)contentView.findViewById(R.id.listview_flow_list);TextView titleText = (TextView)contentView.findViewById(R.id.title);titleText.setText("請選擇銀行卡");SelectBankCardDialogAdapter adapter =new SelectBankCardDialogAdapter(this, mBankcardList);msgView.setAdapter(adapter);msgView.setOnItemClickListener(newOnItemClickListener() {@Overridepublic void onItemClick(AdapterViewparent, View view, int position, long id) {Toast.makeText(RechargeFlowToMobileActivity.this, position+"",0).show();mSelectCard =mBankcardList.get(position);String area = mSelectCard.getBank_card();mCardNumberText.setText(area);dialog.di *** iss();}});Button closeBtn = (Button)contentView.findViewById(R.id.close);closeBtn.setClickable(true);closeBtn.setOnClickListener(newView.OnClickListener() {@Overridepublic void onClick(View v) {dialog.di *** iss();}});dialog.show();
以上就是在Android開發自定義dialog樣式的方法和步驟,android很多的控制元件都提供了介面或者方法進行樣式的定義和修改。
如何自定義android Button樣式
返回部落格列表
轉 android自定義button樣式
sumpower
釋出時間: 2014/02/25 19:56
閱讀: 4162
收藏: 0
點贊: 0
評論: 0
摘要
android自定義button樣式
在Android開發應用中,預設的Button是由系統渲染和管理大小的。而我們看到的成功的移動應用,都是有著酷炫的外觀和使用體驗的。因此,我們在開發產品的時候,需要對預設按鈕進行美化。在本篇里,筆者結合在應用開發中的經驗,探討一下自定義背景的按鈕、自定義形狀按鈕的實現方法。
首先看實現效果截圖:
自定義背景的按鈕目前有2種方式實現,向量和點陣圖。
1. 向量圖形繪制的方式
向量圖形繪制的方式實現簡單,適合對於按鈕形狀和圖案要求不高的場合。步驟如下:
(a) 使用xml定義一個圓角矩形,外圍輪廓線實線、內填充漸變色,xml程式碼如下。
view plain
bg_alibuybutton_default.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="地址">
<item>
<shape android:shape="rectangle">
<solid android:color="#FFEC7600" />
<corners
android:LeftRadius="5dip"
android:RightRadius="5dip"
android:bottomLeftRadius="5dip"
android:bottomRightRadius="5dip" />
</shape>
</item>
<item android:="1px" android:bottom="1px" android:left="1px" android:right="1px">
<shape>
<gradient
android:startColor="#FFEC7600" android:endColor="#FFFED69E"
android:type="linear" android:angle="90"
android:centerX="0.5" android:centerY="0.5" />
<corners
android:LeftRadius="5dip"
android:RightRadius="5dip"
android:bottomLeftRadius="5dip"
android:bottomRightRadius="5dip" />
</shape>
</item>
</layer-list>
同樣定義bg_alibuybutton_pressed.xml和bg_alibuybutton_selected.xml,內容相同,就是漸變顏色不同,用於按鈕按下後的背景變化效果。
(b) 定義按鈕按下後的效果變化描述檔案drawable/bg_alibuybutton.xml,程式碼如下。
view plain
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="地址">
<item android:state_pressed="true"
android:drawable="@drawable/bg_alibuybutton_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/bg_alibuybutton_selected" />
<item android:drawable="@drawable/bg_alibuybutton_default" />
</selector>
(c) 在你需要的介面定義檔案中,如layout/main.xml中定義一個Button控制元件。
view plain
<Button
android:layout_width="120dip"
android:layout_height="40dip"
android:text="向量背景按鈕" android:background="@drawable/bg_alibuybutton" />
這樣,自定義背景的按鈕就可以使用了,在實現onClick方法後就可以響應操作。
android自帶的樣式比較難看,如何能夠自定義按鈕的樣式,使其顯示的跟美工設計的效果一樣,現與大家分享下
在layout中新增2個按鈕,從下圖中可以看出在按鈕中呼叫了style和android:background屬性,這兩個屬性一個是自定義樣式,一個是給按鈕新增背景圖片
展開res目錄,可以看到在values目錄下有styles.xml檔案,該檔案用於自定義樣式,雙擊開啟
標注的是我自定義的樣式,name為BtnStyle,當按鈕呼叫自定義樣式的時候訪問這個name
在button中呼叫自定義樣式的方法,比較簡單
如何往按鈕中新增自定義圖片,使按鈕看起來更漂亮些,因不同手機解析度不同,那必然牽扯到圖片的拉伸,在android系統下有個很好的技術「九宮格「,可以對圖片進行處理,只對區域性進行拉伸,給工具目錄儲存在android\sdk\tools\draw9patch.bat,經過該工具處理的圖片以.9.png結尾,放到drawable資料夾中
在Button中通過android:background屬性載入圖片的方法,至此我們自定義的按鈕樣式也就完成了,當然這只是個引子,在具體的專案工程中實現的效果要比這個demo復雜很多,有好的設計思路歡迎交流。
『肆』 怎麼給android 設置邊框
android設置邊框利用內容的margin或者padding的留白加容器的背景來實現邊框效果。
shape來實現邊框效果
corners是設置邊框圓角
stroke是描邊的
layer-list實現自由邊框
嵌套一層,利用內容的margin或者padding的留白加容器的背景來實現邊框效果。其實這個道理很簡單,很早的時候那時候我們還用table做html頁面布局的時候,我們就是使用cellspacing來實現table的邊框的。現在我們也利用同樣的想法來實現。
當然內部的容器也是需要有顏色的,如果想實現內部透明的效果則需要將內部View的背景色跟背景的顏色保持一致,這是不太方便的地方。
在Android中,給一個控制項(或View)設置背景主要是通過background:xxx屬性來完成。background的參數一般來說是一個drawable資源。
給控制項設置邊框最簡單的方式就是把background設置成你預先設計好的帶圓角和邊框的背景圖。但是這種方法的缺點是沒有靈活性,不同大小的view要不同尺寸的圖片,還要去適應不同解析度的設備。
3使用9-patch(九宮格)的背景圖片來實現邊框效果。
做一個有邊框的9-patch圖片,作為要有邊框的View的背景圖即可。這樣你還可以控制哪邊有邊框,哪邊無邊框,這種方法是比較好的一種方法,而且沒有多餘的View嵌套。另外你還可以實現圓角邊框等效果。
4利用shape來實現邊框效果。
當然你可以使用shape中的stroke來實現border的效果。
/res/drawable/filename.xml
只要引用這個shape作為背景圖片即可。
5.layer-list實現自由邊框
當前版本的Android
SDK並沒有給stroke提供bottom、left、right之類的屬性,也就是說你無法通過它來讓長方形的邊框少於4條。於是有人想出了這個方法。
android:width="1dp"
android:color="#333"/>
android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp">
android:color="#FFF"/>
在第二個item中定義的top,left...就是對應的邊框,不設置即沒有邊框。
『伍』 android下拉列表框能自己輸入內容嗎
android 下拉列表框是不允許輸入內容,可以通過代碼的形式進行填充數據。