sdf
This commit is contained in:
174
app/src/main/java/imageselector/ClipImageActivity.java
Normal file
174
app/src/main/java/imageselector/ClipImageActivity.java
Normal file
@@ -0,0 +1,174 @@
|
||||
package imageselector;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.sl.house_property.R;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import imageselector.utils.ImageSelector;
|
||||
import imageselector.utils.ImageUtil;
|
||||
import imageselector.utils.StringUtils;
|
||||
import imageselector.view.ClipImageView;
|
||||
|
||||
|
||||
public class ClipImageActivity extends Activity {
|
||||
|
||||
private FrameLayout btnConfirm;
|
||||
private FrameLayout btnBack;
|
||||
private ClipImageView imageView;
|
||||
private int mRequestCode;
|
||||
private boolean isCameraImage;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
||||
setContentView(R.layout.activity_clip_image);
|
||||
|
||||
Intent intent = getIntent();
|
||||
mRequestCode = intent.getIntExtra("requestCode", 0);
|
||||
|
||||
setStatusBarColor();
|
||||
ImageSelectorActivity.openActivity(this, mRequestCode, true,
|
||||
intent.getBooleanExtra(ImageSelector.IS_VIEW_IMAGE, true),
|
||||
intent.getBooleanExtra(ImageSelector.USE_CAMERA, true), 0,
|
||||
intent.getStringArrayListExtra(ImageSelector.SELECTED));
|
||||
initView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改状态栏颜色
|
||||
*/
|
||||
private void setStatusBarColor() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
Window window = getWindow();
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
||||
window.setStatusBarColor(Color.parseColor("#373c3d"));
|
||||
}
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
imageView = (ClipImageView) findViewById(R.id.process_img);
|
||||
btnConfirm = (FrameLayout) findViewById(R.id.btn_confirm);
|
||||
btnBack = (FrameLayout) findViewById(R.id.btn_back);
|
||||
|
||||
btnConfirm.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (imageView.getDrawable() != null) {
|
||||
btnConfirm.setEnabled(false);
|
||||
confirm(imageView.clipImage());
|
||||
}
|
||||
}
|
||||
});
|
||||
btnBack.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
if (data != null && requestCode == mRequestCode) {
|
||||
ArrayList<String> images = data.getStringArrayListExtra(ImageSelector.SELECT_RESULT);
|
||||
isCameraImage = data.getBooleanExtra(ImageSelector.IS_CAMERA_IMAGE, false);
|
||||
Bitmap bitmap = ImageUtil.decodeSampledBitmapFromFile(images.get(0), 720, 1080);
|
||||
if (bitmap != null) {
|
||||
imageView.setBitmapData(bitmap);
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
} else {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
private void confirm(Bitmap bitmap) {
|
||||
String imagePath = null;
|
||||
if (bitmap != null) {
|
||||
imagePath = ImageUtil.saveImage(bitmap, getCacheDir().getPath() + File.separator + "image_select");
|
||||
bitmap.recycle();
|
||||
bitmap = null;
|
||||
}
|
||||
|
||||
if (StringUtils.isNotEmptyString(imagePath)) {
|
||||
ArrayList<String> selectImages = new ArrayList<>();
|
||||
selectImages.add(imagePath);
|
||||
Intent intent = new Intent();
|
||||
intent.putStringArrayListExtra(ImageSelector.SELECT_RESULT, selectImages);
|
||||
intent.putExtra(ImageSelector.IS_CAMERA_IMAGE,isCameraImage);
|
||||
setResult(RESULT_OK, intent);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
|
||||
public static void openActivity(Activity context, int requestCode, boolean isViewImage,
|
||||
boolean useCamera, ArrayList<String> selected) {
|
||||
Intent intent = new Intent(context, ClipImageActivity.class);
|
||||
intent.putExtras(dataPackages(requestCode, isViewImage, useCamera, selected));
|
||||
context.startActivityForResult(intent, requestCode);
|
||||
}
|
||||
|
||||
public static void openActivity(Fragment fragment, int requestCode, boolean isViewImage,
|
||||
boolean useCamera, ArrayList<String> selected) {
|
||||
Intent intent = new Intent(fragment.getContext(), ClipImageActivity.class);
|
||||
intent.putExtras(dataPackages(requestCode, isViewImage, useCamera, selected));
|
||||
fragment.startActivityForResult(intent, requestCode);
|
||||
}
|
||||
|
||||
public static void openActivity(android.app.Fragment fragment, int requestCode, boolean isViewImage,
|
||||
boolean useCamera, ArrayList<String> selected) {
|
||||
Intent intent = new Intent(fragment.getActivity(), ClipImageActivity.class);
|
||||
intent.putExtras(dataPackages(requestCode, isViewImage, useCamera, selected));
|
||||
fragment.startActivityForResult(intent, requestCode);
|
||||
}
|
||||
|
||||
public static Bundle dataPackages(int requestCode, boolean isViewImage, boolean useCamera,
|
||||
ArrayList<String> selected) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt("requestCode", requestCode);
|
||||
bundle.putBoolean(ImageSelector.IS_VIEW_IMAGE, isViewImage);
|
||||
bundle.putBoolean(ImageSelector.USE_CAMERA, useCamera);
|
||||
bundle.putStringArrayList(ImageSelector.SELECTED, selected);
|
||||
return bundle;
|
||||
}
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
//非默认值
|
||||
if (newConfig.fontScale != 1){
|
||||
getResources();
|
||||
}
|
||||
super.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Resources getResources() {//还原字体大小
|
||||
Resources res = super.getResources();
|
||||
//非默认值
|
||||
if (res.getConfiguration().fontScale != 1) {
|
||||
Configuration newConfig = new Configuration();
|
||||
newConfig.setToDefaults();//设置默认
|
||||
res.updateConfiguration(newConfig, res.getDisplayMetrics());
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user