1.先是写自定义的MyDialog类
package com.oracle.cary.myphoneprotector1; import android.app.Dialog; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast; import java.io.InputStream; public class Mydialog extends Dialog implements View.OnClickListener { private Button btn_bg_1; private Button btn_bg_2; private Button btn_bg_3; private Button btn_bg_4; private Button btn_bg_5; private Button btn_bg_6; private Button btn_bg_7; private Button btn_bg_8; public static int BG_CHOICE = -1; private Context mContext; private LinearLayout layout_root; // protected static final String TAG = "Mydialog"; private OnButtonClickListener mlistener; public Mydialog(Context context, int theme) { super(context, theme); mContext = context; } protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.view_addconperson_skin); super.onCreate(savedInstanceState); btn_bg_1 = (Button) findViewById(R.id.btn_bg1); btn_bg_2 = (Button) findViewById(R.id.btn_bg2); btn_bg_3 = (Button) findViewById(R.id.btn_bg3); btn_bg_4 = (Button) findViewById(R.id.btn_bg4); btn_bg_5 = (Button) findViewById(R.id.btn_bg5); btn_bg_6 = (Button) findViewById(R.id.btn_bg6); btn_bg_7 = (Button) findViewById(R.id.btn_bg7); btn_bg_8 = (Button) findViewById(R.id.btn_bg8); btn_bg_1.setOnClickListener(this); btn_bg_2.setOnClickListener(this); btn_bg_3.setOnClickListener(this); btn_bg_4.setOnClickListener(this); btn_bg_5.setOnClickListener(this); btn_bg_6.setOnClickListener(this); btn_bg_7.setOnClickListener(this); btn_bg_8.setOnClickListener(this); int width = mContext.getResources().getDisplayMetrics().widthPixels; int height = mContext.getResources().getDisplayMetrics().heightPixels; layout_root = (LinearLayout) findViewById(R.id.layout_root); LayoutParams params = layout_root.getLayoutParams(); params.width = (int) (width*0.75); params.height = (int) (height*0.5); layout_root.setLayoutParams(params); } public void setOnButtonClickListener(OnButtonClickListener listener) { this.mlistener = listener; } interface OnButtonClickListener { void onButtonClick(); } public void onClick(View v) { switch (v.getId()) { case R.id.btn_bg1: dismiss(); BG_CHOICE = 1; mlistener.onButtonClick(); break; case R.id.btn_bg2: dismiss(); BG_CHOICE = 2; mlistener.onButtonClick(); break; case R.id.btn_bg3: dismiss(); BG_CHOICE = 3; mlistener.onButtonClick(); break; case R.id.btn_bg4: dismiss(); BG_CHOICE = 4; mlistener.onButtonClick(); break; case R.id.btn_bg5: dismiss(); BG_CHOICE = 5; mlistener.onButtonClick(); break; case R.id.btn_bg6: dismiss(); BG_CHOICE = 6; mlistener.onButtonClick(); break; case R.id.btn_bg7: dismiss(); BG_CHOICE = 7; mlistener.onButtonClick(); break; case R.id.btn_bg8: dismiss(); BG_CHOICE = 8; mlistener.onButtonClick(); break; default: break; } } }2.布局文件xml
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="300dp"> <LinearLayout android:id="@+id/layout_root" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/btn_bg1" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_tabhost_widget" /> <Button android:id="@+id/btn_bg2" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_taghost_widget_11" /> <Button android:id="@+id/btn_bg3" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_taghost_widget_02" /> <Button android:id="@+id/btn_bg4" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_taghost_widget_03" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <Button android:id="@+id/btn_bg5" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_tabhost_widget_04" /> <Button android:id="@+id/btn_bg6" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_tabhost_widget_05" /> <Button android:id="@+id/btn_bg7" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_tabhost_widget_06" /> <Button android:id="@+id/btn_bg8" android:layout_width="0dp" android:layout_height="60dp" android:layout_weight="1" android:background="@drawable/bg_tabhost_widget_07" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"></LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"></LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"></LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"></LinearLayout> </LinearLayout> </ScrollView>3.调用这个自定义dialog
if (mydialog == null) { mydialog = new Mydialog(MainFrame.this, R.style.costomDiaologtheme); mydialog.setOnButtonClickListener(new Mydialog.OnButtonClickListener() { public void onButtonClick() { notifySkin(); } }); } mydialog.show();4.最终效果