package com.weikou.beibeivideo.util;
|
|
import java.io.File;
|
import java.io.IOException;
|
|
import android.annotation.SuppressLint;
|
import android.app.Activity;
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.net.Uri;
|
import android.provider.MediaStore;
|
import androidx.fragment.app.Fragment;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.weikou.beibeivideo.R;
|
|
/**
|
* 图片选锟斤拷--锟斤拷锟皆达拷锟斤拷锟斤拷锟斤拷图锟斤拷选锟斤拷图片锟斤拷锟揭硷拷锟斤拷
|
*
|
* @author Administrator
|
*
|
*/
|
public class FChoosePicDialog extends Dialog {
|
public final static int REQUEST_PIC = 0x00001001;
|
public final static int REQUEST_CAMERA = 0x00001002;
|
Context context;
|
private int width = 0;
|
private int height = 0;
|
Activity activity = null;
|
private File tempFile = null;
|
private int requestCode = 1;
|
public boolean isCamera = false;
|
public boolean isCrop = true;// 鏄惁闇�鍓
|
private Fragment fg = null;
|
|
// 璁剧疆鍓
|
public void setCrop(boolean iscrop) {
|
this.isCrop = iscrop;
|
}
|
|
public void setFragment(Fragment fg) {
|
this.fg = fg;
|
}
|
|
public int getRequestCode() {
|
return requestCode;
|
}
|
|
public void setRequestCode(int requestCode) {
|
this.requestCode = requestCode;
|
}
|
|
public void setActivity(Activity activity) {
|
this.activity = activity;
|
}
|
|
public FChoosePicDialog(Context context) {
|
this(context, R.style.PicDialog);
|
this.context = context;
|
setContentView(null);
|
}
|
|
public FChoosePicDialog(Context context, int style) {
|
super(context, style);
|
this.context = context;
|
setContentView(null);
|
}
|
|
public void set(int width, int height) {
|
this.height = height;
|
this.width = width;
|
}
|
|
public void setTempFilePath(String st) {
|
tempFile = new File(st);
|
}
|
|
@Override
|
public void setContentView(View view) {
|
View v = LayoutInflater.from(context).inflate(R.layout.item_pic_dialog,
|
null);
|
TextView tv_pic = (TextView) v.findViewById(R.id.tv_pic_dialog_bottom);
|
TextView tv_camera = (TextView) v.findViewById(R.id.tv_pic_dialog_top);
|
tv_pic.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
isCamera = false;
|
if (isShowing())
|
dismiss();
|
// 锟斤拷锟斤拷图
|
if (tempFile == null) {
|
Toast.makeText(context, "锟斤拷锟斤拷锟矫伙拷锟斤拷锟侥硷拷路锟斤拷",
|
Toast.LENGTH_SHORT).show();
|
return;
|
}
|
if (activity == null) {
|
Toast.makeText(context, "锟斤拷锟斤拷锟矫革拷Activity",
|
Toast.LENGTH_SHORT).show();
|
return;
|
}
|
getPics(tempFile);
|
}
|
});
|
tv_camera.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
isCamera = true;
|
if (isShowing())
|
dismiss();
|
// 锟斤拷锟�
|
if (tempFile == null) {
|
Toast.makeText(context, "锟斤拷锟斤拷锟矫伙拷锟斤拷锟侥硷拷路锟斤拷",
|
Toast.LENGTH_SHORT).show();
|
return;
|
}
|
if (activity == null) {
|
Toast.makeText(context, "锟斤拷锟斤拷锟矫革拷Activity",
|
Toast.LENGTH_SHORT).show();
|
return;
|
}
|
startCamera(tempFile);
|
}
|
});
|
super.setContentView(v);
|
}
|
|
private void getPics(File file) {
|
if (isCrop) {// 瑁佸壀
|
Intent intent = new Intent("android.intent.action.PICK");
|
intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI,
|
"image/*");
|
intent.putExtra("output", Uri.fromFile(file));
|
intent.putExtra("crop", "true");
|
intent.putExtra("aspectX", width);// 锟矫硷拷锟斤拷锟斤拷锟�
|
intent.putExtra("aspectY", height);
|
intent.putExtra("outputX", width);// 锟斤拷锟酵计拷锟叫�
|
intent.putExtra("outputY", height);
|
if (fg != null)
|
fg.startActivityForResult(intent, requestCode);
|
else
|
activity.startActivityForResult(intent, requestCode);
|
} else {// 涓嶈鍓�
|
if (!file.exists())
|
try {
|
file.createNewFile();
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
|
intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI,
|
"image/*");
|
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
|
if (fg != null)
|
fg.startActivityForResult(intent, requestCode);
|
else
|
activity.startActivityForResult(intent, requestCode);
|
}
|
}
|
|
public void cropPic(String path, int cropCode) {
|
Intent intent = new Intent("com.android.camera.action.CROP");
|
intent.setDataAndType(Uri.fromFile(new File(path)), "image/*");
|
intent.putExtra("aspectX", width);//
|
intent.putExtra("aspectY", height);
|
intent.putExtra("outputX", width);//
|
intent.putExtra("outputY", height);
|
intent.putExtra("return-data", true);
|
if (fg != null)
|
fg.startActivityForResult(intent, cropCode);
|
else
|
activity.startActivityForResult(intent, cropCode);
|
}
|
|
@SuppressLint("SimpleDateFormat")
|
private void startCamera(File file) {
|
|
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
if (fg != null)
|
fg.startActivityForResult(intent, requestCode);
|
else
|
activity.startActivityForResult(intent, requestCode);
|
/*
|
* } else// 瑁佸壀 { Intent intent = new
|
* Intent(MediaStore.ACTION_IMAGE_CAPTURE);
|
* intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
|
* intent.putExtra("aspectX", width);//
|
* 瑁佸壀妗嗘瘮渚�intent.putExtra("aspectY", height);
|
* intent.putExtra("outputX", width);// 杈撳嚭鍥剧墖澶у皬
|
* intent.putExtra("outputY", height); intent.putExtra("return-data",
|
* true); activity.startActivityForResult(intent, requestCode); }
|
*/
|
}
|
}
|