Android UI組件進階(2)——仿Windows對話方塊
Android UI組件進階(2)——仿Windows對話方塊
在開始本章前先祝大家中秋節快樂哈,相信很多上班的朋友都是放三天假的哈!
有時間的話回家陪陪父母吧!樹欲靜而風不止,子欲養而親不待!歲月不饒人!
好了,道理和祝福語就說到這裡了,今天給大家準備的是模仿Windows風格對話方塊!
:
相信大部分的AlertDialog都是下面這個樣子的:
今天給大家講解的對話方塊是下面這樣的:
對比兩種對話方塊,站在使用者的角度,相信你更加鐘情於第二種顏色鮮明的對話方塊
好了下面就開始講解如何製作模仿windows風格的對話方塊吧!
代碼的邏輯流程:
其實就是自訂對話方塊的布局,然後載入以及完成相應的事件處理而已!
核心代碼解析:
①按鈕點擊效果:btnexit_selctor.xml
②對話方塊的布局檔案:dialog_win.xml
③MainActivity.java
package com.jay.example.windowsdialogdemo;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageButton;import android.widget.Toast;public class MainActivity extends Activity {private Button btnshow;private View dialogView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnshow = (Button) findViewById(R.id.btnshow);btnshow.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Builder builder = myBuilder(MainActivity.this);final AlertDialog dialog = builder.show();//設定點擊螢幕外側,對話方塊不消失,不設定的話點外面對話方塊就會消失dialog.setCanceledOnTouchOutside(false);//接著要監聽對話方塊中的三個按鈕://①關閉對話方塊的按鈕:ImageButton imgcancle = (ImageButton) dialogView.findViewById(R.id.btncancle);imgcancle.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});//①連結到部落格的按鈕Button btnblob = (Button) dialogView.findViewById(R.id.btnblog);btnblob.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(getApplicationContext(), "訪問部落格", Toast.LENGTH_SHORT).show();Uri uri = Uri.parse("http://blog.csdn.net/coder_pig");Intent intent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);dialog.dismiss();}});//③點擊退出的按鈕:Button btnclose = (Button) dialogView.findViewById(R.id.btnclose);btnclose.setOnClickListener(new OnClickListener() {public void onClick(View v) {dialog.dismiss();}});}//定義一個返回Builder對象的方法,其實這裡是設定對話方塊顯示view內容的方法private Builder myBuilder(Context context) {final LayoutInflater inflater = MainActivity.this.getLayoutInflater();AlertDialog.Builder builder = new AlertDialog.Builder(context);dialogView = inflater.inflate(R.layout.dialog_win, null);return builder.setView(dialogView);}});}}
執行個體代碼下載:
http://pan.baidu.com/s/1jGone5o