package com.bw.cartwo.fragment;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Parcelable;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
import com.bw.cartwo.R;
import com.bw.cartwo.base.BaseFragment;
public class MyFragment extends BaseFragment implements View.OnClickListener {
private ImageView iamge;
@Override
protected int onLayoutId() {
return R.layout.fragment_my;
}
@Override
protected void onView(View view) {
iamge = view.findViewById(R.id.image);
iamge.setOnClickListener(this);
}
@Override
protected void onData() {
}
@Override
public void onClick(View v) {
getCome();
}
private void getCome() {
View inflate = LayoutInflater.from(getActivity()).inflate(R.layout.item_pop, null);
TextView one = inflate.findViewById(R.id.one);
TextView two = inflate.findViewById(R.id.two);
final PopupWindow popupWindow = new PopupWindow(inflate);
popupWindow.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
popupWindow.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
popupWindow.setBackgroundDrawable(new ColorDrawable(0x325105));
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(false);
one.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 版本判断。当手机系统大于 23 时,才有必要去判断权限是否获取
if (Build.VERSION.SDK_INT >= 23) {
// 检查该权限是否已经获取
int i = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.CAMERA);
if (i != PackageManager.PERMISSION_GRANTED) {
// 如果没有授予该权限,就去提示用户请求
requestPermissions(new String[]{Manifest.permission.CAMERA}, 321);
// ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA}, 321);
} else {
Toast.makeText(getActivity(), "已授权", Toast.LENGTH_SHORT).show();
//进入相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);
}
} else {
Toast.makeText(getActivity(), "6.0以下", Toast.LENGTH_SHORT).show();
//打开相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);
}
popupWindow.dismiss();
}
});
two.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 1);
popupWindow.dismiss();
}
});
popupWindow.showAtLocation(inflate, Gravity.BOTTOM, 5, 5);
}
//授权回调
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//打开相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory("android.intent.category.DEFAULT");
startActivityForResult(intent, 0);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//相机
if (requestCode == 0) {
Parcelable data1 = data.getParcelableExtra("data");
iamge.setImageBitmap((Bitmap) data1);
}
//相册
if (requestCode == 1) {
Uri data1 = data.getData();
iamge.setImageURI(data1);
}
}
}
动态权限
最新推荐文章于 2023-06-26 12:00:25 发布