CropImage
库在Activity
中工作正常,但在Fragments
中不工作。它没有在Fragments
中获取图像。
我将上下文从MainActivity.this
更改为getActivity()
,但是它不起作用。
我的代码:
private void getImage() {
CropImage.activity().setGuidelines(CropImageView.Guidelines.ON).start(getActivity());
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == galleryPic && resultCode == RESULT_OK) {
Uri image = data.getData();
CropImage.activity(image).setAspectRatio(1, 1).start(getContext(), this);
}
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
Uri resultUri = result.getUri();
File fileImage = new File(resultUri.getPath());
// compressImage method will compress the image.
byte[] byteImageCompress = compressImage(fileImage);
Bitmap bitmapImage = BitmapFactory.decodeByteArray(byteImageCompress, 0, byteImageCompress.length);
imageViewChairman.setImageBitmap(bitmapImage);
}
}
}
如何使用片段中的CropImage库获取图像?
答案 0 :(得分:0)
我将getActivity()更改为(getContext(),this),它对我有用。
之前:
CropImage.activity()。setGuidelines(CropImageView.Guidelines.ON).start(getActivity());
之后:
CropImage.activity()。setGuidelines(CropImageView.Guidelines.ON).start(getContext(),this);
答案 1 :(得分:0)
我更喜欢创建一个App类并扩展Aplication,然后添加清单应用名作为App类路径。并在App类中创建一个单例的methot实例。我认为您可以在任何地方使用' App.getInstance()。getApplicationContex '
public class App extends Application {
public static App instance = null;
public static App getInstance() {
if (instance == null) {
instance = new App();
}
return instance;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
instance = this;
}
}
清单文件
<application
android:name=".application.App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.FullScreen">
<activity.......
对不起,我的英语不好:/