android自定义dialog实现app换肤功能

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.最终效果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值