您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在Android中自定義一個(gè)扁平化對(duì)話框,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
Shamoo想到在Android平臺(tái)上弄一個(gè)扁平化的對(duì)話框。參考過(guò)一篇帖子,然后改了一下。
這個(gè)Demo比較簡(jiǎn)單,首先是一個(gè)dialog的布局文件,這個(gè)dialog的布局要實(shí)例化成對(duì)話框可以通過(guò)AlertDialog.Builder的setView方法,將LayoutInflater實(shí)例化的dialog布局設(shè)置對(duì)話框具體顯示內(nèi)容。
DialogWindows.Java
package com.example.dialogwindows; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.Toast; public class DialogWindows extends Activity { private Button button; private View dialogView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button = (Button) findViewById(R.id.btn); button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Builder builder = myBuilder(DialogWindows.this); final AlertDialog dialog = builder.show(); //點(diǎn)擊屏幕外側(cè),dialog不消失 dialog.setCanceledOnTouchOutside(false); Button btnOK = (Button) dialogView.findViewById(R.id.btn_ok); btnOK.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(DialogWindows.this, "你點(diǎn)擊了確定按鈕", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); Button btnCancel = (Button) dialogView.findViewById(R.id.btn_cancel); btnCancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(DialogWindows.this, "你點(diǎn)擊了取消按鈕", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); ImageButton customviewtvimgCancel = (ImageButton) dialogView.findViewById(R.id.btn_exit); customviewtvimgCancel.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(DialogWindows.this, "你點(diǎn)擊了退出按鈕", Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); } }); } protected Builder myBuilder(Context context) { LayoutInflater inflater = getLayoutInflater(); AlertDialog.Builder builder = new AlertDialog.Builder(context); dialogView = inflater.inflate(R.layout.dialog, null); return builder.setView(dialogView); } }
dialog.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <!-- 標(biāo)題欄 --> <RelativeLayout android:id="@+id/dialog_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#1A94F9" > <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:padding="10dp" android:text="@string/about" android:textColor="#000000" /> <ImageButton android:id="@+id/btn_exit" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/canceltor" /> </RelativeLayout> <!-- 顯示的內(nèi)容 --> <LinearLayout android:id="@+id/dialog_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_below="@id/dialog_title" android:padding="20dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/author" android:textColor="#ffffff" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:linksClickable="true" android:text="@string/blog" android:textColor="#ffffff" /> </LinearLayout> <!-- 底部按鈕 --> <LinearLayout android:id="@+id/customviewlayLink" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/dialog_msg" android:orientation="horizontal" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingBottom="20dp" > <Button android:id="@+id/btn_ok" android:layout_width="fill_parent" android:layout_height="40dp" android:background="@drawable/linkbtnbged" android:linksClickable="true" android:layout_weight="1" android:layout_marginRight="10dp" android:text="@string/btn_ok" /> <Button android:id="@+id/btn_cancel" android:layout_width="fill_parent" android:layout_height="40dp" android:linksClickable="true" android:background="@drawable/linkbtnbged" android:text="@string/btn_cancel" android:layout_marginLeft="10dp" android:layout_weight="1" /> </LinearLayout> </RelativeLayout>
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/show_dialog" /> </RelativeLayout>
關(guān)于怎么在Android中自定義一個(gè)扁平化對(duì)話框就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。