我使用以下代码打开默认文件管理器并找到图像,但是当我单击图像时,活动将关闭。
我可以在“活动”的顶部选择文件,我看到单词Open
,但是当我点击它时,它会自动关闭。
我想捕获此事件并在我的自定义活动中以全屏模式打开选定的图像。
int PICKFILE_REQUEST_CODE=10;
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
startActivityForResult(intent, PICKFILE_REQUEST_CODE);
答案 0 :(得分:1)
尝试使用此代码
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(fileuri, "image/*");
startActivity(intent);
编辑:
首先使用打开画廊的方法选择图像文件
private void dispatchImageGalleryIntent() {
Intent galleryIntent = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
try {
startActivityForResult(galleryIntent, REQUEST_CODE_IMAGE_GALLERY);
} catch (Exception e) {
e.printStackTrace();
}
}
然后在onActivityResult
if (requestCode == REQUEST_CODE_IMAGE_GALLERY){
if (resultCode == RESULT_OK){
Uri fileuri = intent.getData();
}
}
使用fileUri
打开图像。
答案 1 :(得分:0)
最后我开始工作了。
1。启动文件管理器以选择文件(在我的情况下是图像文件)
int PICKFILE_REQUEST_CODE=33; // class property
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT); // It helps to get Image Uri
intent.setType("image/*"); // Filter only images to open
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
startActivityForResult(intent, PICKFILE_REQUEST_CODE);
2。使用onActivityResult事件获取使用PICKFILE_REQUEST_CODE选择意图的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICKFILE_REQUEST_CODE ) {
if(resultCode == Activity.RESULT_OK){
Uri imageUri = data.getData();
Intent intent = new Intent(this, ImageViewer.class);
intent.putExtra("imageUri", imageUri.toString());
startActivity(intent); // Start new intent to see the full sized image ImageViewer
}
}
3。有了ImageViewer,我们可以使用Image做所有员工
public class ImageViewer extends AppCompatActivity {
private ImageView imgView;
private String fullScreenInd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_viewer);
Uri myUri = Uri.parse(getIntent().getExtras().getString("imageUri"));
imgView = (ImageView)findViewById(R.id.fullImageView);
imgView.setImageURI(myUri);
imgView.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT;
imgView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
imgView.setAdjustViewBounds(false);
imgView.setScaleType(ImageView.ScaleType.FIT_XY);
}
}