安卓保存ImageView上的图片,并保存到相册(二)

接上文,此文将放出上文中使用的几个工具类。

package com.example.mylibrary.view.dialog;

import android.app.Dialog;
import android.content.Context;
import android.support.annotation.ColorRes;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;

import com.example.mylibrary.R;
import com.example.mylibrary.utils.display.HnDimenUtil;

public class CommDialog extends Dialog {

    public final static int ONE_STATE = 1;
    public final static int TWO_STATE = 2;
    public Context context;
    public TextView mTvContent, mTvLeft, mTvRight,mTvTitle;
    private int State = 1;
    private TwoSelDialog mTwoSelDialog;
    private OneSelDialog mOneSelDialog;
    private static CommDialog dialog;

    public static CommDialog getDialog() {
        return dialog;
    }

    public interface TwoSelDialog {
        default void leftClick(){dialog.dismiss();};

        void rightClick();
    }

    public interface OneSelDialog {
        void sureClick();
    }

    public static CommDialog newInstance(Context context) {
        dialog = new CommDialog(context);
        return dialog;
    }

    public CommDialog(Context context) {
        super(context, R.style.PXDialog);
        this.context = context;
        this.State = TWO_STATE;
        init();
    }


    public static CommDialog showDialog() {
        if (dialog != null) {
            dialog.show();
            return dialog;
        }
        return dialog;
    }


    private void init() {
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.comm_dialog, null);
        setContentView(view);
        mTvContent = (TextView) findViewById(R.id.mTvTitle);
        mTvLeft = (TextView) findViewById(R.id.mTvLeft);
        mTvTitle = (TextView) findViewById(R.id.hint);
        mTvRight = (TextView) findViewById(R.id.mTvRight);


        Window dialogWindow = this.getWindow();
        WindowManager.LayoutParams lp = dialogWindow.getAttributes();
        lp.width = HnDimenUtil.dp2px(context, 300); // 宽度
//        lp.height = HnDimenUtil.dp2px(context,  170); // 高度
        dialogWindow.setAttributes(lp);
    }

    //设置标题
    public CommDialog setCanceledOnOutside(boolean isCancle) {
        if (dialog != null) {
            this.setCanceledOnTouchOutside(isCancle);
            return dialog;
        }
        return null;
    }
    //设置标题
    public CommDialog setTitle(String title) {
        if (mTvTitle != null) {
            mTvTitle.setText(title);
            return dialog;
        }
        return null;
    }


    //设置内容
    public CommDialog setContent(String content) {
            if (mTvContent != null) {
                mTvContent.setText(content);
                return dialog;
            }
            return null;
    }

    //设置左边文本 默认-取消
    public CommDialog setLeftText(String leftText) {
        if (mTvLeft != null) {
            mTvLeft.setText(leftText);
            return dialog;
        }
        return null;
    }

    //设置右边文本 默认-确认
    public CommDialog setLeftText(String rightText, @ColorRes int color) {
        if (mTvLeft != null) {
            mTvLeft.setText(rightText);
            mTvLeft.setTextColor(context.getResources().getColor(color));
            return dialog;
        }
        return null;
    }

    //设置右边文本 默认-确认
    public CommDialog setRightText(String rightText) {
        if (mTvRight != null) {
            mTvRight.setText(rightText);
            return dialog;
        }
        return null;
    }

    //设置右边文本 默认-确认
    public CommDialog setRightText(String rightText, @ColorRes int color) {
        if (mTvRight != null) {
            mTvRight.setText(rightText);
            mTvRight.setTextColor(context.getResources().getColor(color));
            return dialog;
        }
        return null;
    }

    public CommDialog setClickListen(final OneSelDialog mOneSelDialog) {
        this.mOneSelDialog = mOneSelDialog;
        this.State = ONE_STATE;
        mTvLeft.setVisibility(View.GONE);
        //确定
        mTvRight.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mOneSelDialog != null)
                    mOneSelDialog.sureClick();
                if (CommDialog.this.isShowing())
                    CommDialog.this.dismiss();
            }
        });
        return dialog;
    }

    public CommDialog setClickListen(final TwoSelDialog mTwoSelDialog) {
        this.mTwoSelDialog = mTwoSelDialog;
        this.State = TWO_STATE;
        //取消
        mTvLeft.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mTwoSelDialog != null) {
                    mTwoSelDialog.leftClick();
                }
                if (CommDialog.this.isShowing()) {
                    CommDialog.this.dismiss();
                }
            }
        });
        //确定
        mTvRight.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mTwoSelDialog != null) {
                    mTwoSelDialog.rightClick();
                }
                if (CommDialog.this.isShowing()) {
                    CommDialog.this.dismiss();
                }
            }
        });
        return dialog;
    }
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    xmlns:tools="http://schemas.android.com/tools"
    android:background="@drawable/shape_dialog">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:text="提示"
        android:id="@+id/hint"
        android:paddingLeft="@dimen/dimen_16"
        android:layout_marginTop="@dimen/dimen_16"
        android:textColor="@color/newThemeColor"
        android:paddingTop="@dimen/dimen_10"
        android:textStyle="bold"
        android:paddingBottom="@dimen/dimen_10"
        android:textSize="@dimen/sp_16" />

    <TextView
        android:id="@+id/mTvTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/hint"
        android:layout_marginRight="@dimen/dimen_16"
        android:paddingTop="8dp"
        android:paddingBottom="@dimen/dp_20"
        android:layout_marginLeft="@dimen/dimen_16"
        android:textColor="@color/common_title"
        android:textSize="16sp" />



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mTvTitle"
        android:layout_marginBottom="@dimen/dimen_16"
        android:gravity="right"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/mTvLeft"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="取消"
            android:textColor="@color/common_title"
            android:textSize="16sp" />


        <TextView
            android:gravity="center"
            android:text="确定"
            tools:text="确定"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:id="@+id/mTvRight"
            android:layout_height="wrap_content"
            android:textColor="@color/newThemeColor"/>
    </LinearLayout>
</RelativeLayout>

style 样式文件:

<!--对话框样式-->
<style name="PXDialog" parent="Theme.AppCompat.Light.Dialog">
    <!-- 背景颜色-->
    <item name="android:windowBackground">@android:color/transparent</item>
    <!-- 无边框 -->
    <item name="android:windowFrame">@null</item>
    <!-- 没有标题 -->
    <item name="android:windowNoTitle">true</item>
    <!-- 背景是否半透明 -->
    <item name="android:windowIsTranslucent">true</item>
    <!-- 浮于Activity之上 -->
    <item name="android:windowIsFloating">true</item>
</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值