我使用以下代码打开默认文件管理器并找到图像,但是当我单击图像时,活动将关闭。
我可以在“活动”的顶部选择文件,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);
终于,我开始工作了。
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);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句