1. 程式人生 > >Android實現自定義dialog

Android實現自定義dialog

Android自定Dialog

先上效果圖: 在這裡插入圖片描述

1.先在drawable下新建一個drawble resource file,這個檔案用於dialog的圓角背景

<?xml version="1.0" encoding="utf-8"?> 2.在layout下新建一個xml檔案,這個佈局的背景使用剛剛定義的drawable檔案,android:background="@drawable/建的drawable檔案" <?xml version="1.0" encoding="utf-8"?>
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="操作遙控器"
    android:textColor="#585858"
    android:textSize="25dp"
    android:gravity="center"
    />
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:textColor="#585858"
    android:text="按開關/模式/溫度加減任意一鍵學習"
    android:textSize="20dp"
    android:gravity="center"
    />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="140dp"
    android:orientation="horizontal"
    android:padding="10dp"
    >

    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:background="@mipmap/yaokong"
        android:layout_marginLeft="35dp"
        />
    <!--<ImageView-->
        <!--android:layout_width="100dp"-->
        <!--android:layout_height="wrap_content"-->

        <!--android:src="@mipmap/yaokong"-->
        <!--android:layout_marginLeft="35dp"-->
        <!--/>-->

    <LinearLayout
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"

        android:layout_marginLeft="15dp"
        android:layout_marginBottom="5dp"
        >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="90dp"
            android:src="@mipmap/xuanhuang" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="等待學習按鍵..."
            android:textColor="#585858"
            android:textSize="20dp"
            />
    </LinearLayout>




</LinearLayout>
<LinearLayout
    android:id="@+id/yaokongCancel"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="1dp"
android:background="#8d8d8f"
/>
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_marginTop="8dp"
    android:textColor="#1196db"
    android:textSize="25dp"
    android:text="取消"
    />
</LinearLayout>
3.在values的styles設定dialog樣式

4.之後去顯示

package com.example.atry.test;

import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout;

public class tianjiayaokong extends AppCompatActivity { // 這個為點選顯示dialog的佈局 private LinearLayout kongtiaol; // dialog中的取消 private LinearLayout yaokongCancel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tianjiayaokong);
    ActionBar actionBar = getSupportActionBar();
    if(actionBar != null) {
        actionBar.hide();
    }

    kongtiaol = findViewById(R.id.kongtiaol);
    kongtiaol.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showDialog();
        }
    });
}
/**
 * 顯示dialog
 */
private void showDialog()
{
    LayoutInflater inflater = getLayoutInflater();
    //通過inflate加載出自定義佈局
    View view = inflater.inflate(R.layout.activity_dialog_componet,null);
    final Dialog dialog = new Dialog(this,R.style.custom_dialog);
    dialog.setContentView(view);
    yaokongCancel =  view.findViewById(R.id.yaokongCancel);

    yaokongCancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            dialog.dismiss();
        }
    });
   dialog.show();

}

}

好了,第一次寫,沒有經驗,歡迎提意見。