底部彈出自定義Dialog

>

public class MainActivity extends Activity implements PhotoDialogListner{
    private MainActivity mContext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = MainActivity.this;
        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                PhotoUpDialog dialog = new PhotoUpDialog(mContext,
                        R.style.dialog);
                dialog.setPhotoDialogListner(mContext);
                dialog.show();
            }
        });
    }
    @Override
    public void takePhoto() {
       Toast.makeText(mContext, "拍照", Toast.LENGTH_SHORT) .show();
    }
    @Override
    public void pickPhoto() {
        Toast.makeText(mContext, "相冊", Toast.LENGTH_SHORT) .show(); 
    }

}

Activity佈局自行腦補

====================================================================

package com.example.testdialog;
import android.app.Dialog;
import android.content.Context;
import android.view.Display;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class PhotoUpDialog extends Dialog implements
        android.view.View.OnClickListener {
    private Button btnTakePhoto;
    private Button btnPickPhoto;
    private Button btnCancel;
    private PhotoDialogListner pd;
    public interface PhotoDialogListner {
        /**
         * 拍照
         */
        void takePhoto();
        /**
         * 相冊中獲取
         */
        void pickPhoto();
    }
    public void setPhotoDialogListner(PhotoDialogListner pd) {
        this.pd = pd;
    }
    @SuppressWarnings("deprecation")
    public PhotoUpDialog(Context context, int mydialog) {
        super(context, mydialog);// 這點很重要,否則設置無效!
        View menuView = View.inflate(context, R.layout.menu_p_photo_dlg, null);
        this.setContentView(menuView);
        btnTakePhoto = (Button) menuView.findViewById(R.id.menu_btn_take_photo);
        btnPickPhoto = (Button) menuView.findViewById(R.id.menu_btn_pick_photo);
        btnCancel = (Button) menuView.findViewById(R.id.menu_btn_cancel);
        btnTakePhoto.setOnClickListener(this);
        btnPickPhoto.setOnClickListener(this);
        btnCancel.setOnClickListener(this);
        this.setCanceledOnTouchOutside(true);
        WindowManager windowManager = ((MainActivity) context)
                .getWindowManager();
        Display display = windowManager.getDefaultDisplay();
        WindowManager.LayoutParams lp = this.getWindow().getAttributes();
        lp.width = (int) (display.getWidth()); // 設置寬度
        this.getWindow().setAttributes(lp);
        Window window = this.getWindow();
        window.setGravity(Gravity.BOTTOM); // 此處可以設置dialog顯示的位置
        window.setWindowAnimations(R.style.AnimFromBottom); // 添加動畫
    }
    @Override
    public void onClick(View view) {
        if (view == btnTakePhoto) {
            pd.takePhoto();
        }
        if (view == btnPickPhoto) {
            pd.pickPhoto();
        }
        // 取消
        if (view == btnCancel) {
            dismiss();
        }
    }
}

=====================================================================================

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="vertical" >
    <LinearLayout
        android:id="@+id/pop_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="vertical" >
        <Button
            android:id="@+id/menu_btn_take_photo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:layout_marginTop="20dp"
            android:background="#ccc"
            android:text="拍照" />
        <Button
            android:id="@+id/menu_btn_pick_photo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="#cff"
            android:text="相冊" />
    </LinearLayout>
    <Button
        android:id="@+id/menu_btn_cancel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="10dp"
        android:background="#cee"
        android:text="取消" /</LinearLayout>


源碼下載地址  http://download.csdn.net/detail/anroidyanyou/9652787

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章