动态获取文件路径或图片路径

来源:互联网 发布:hl202控制软件下载 编辑:程序博客网 时间:2024/04/29 14:08

我也不详细说了,直接上代码

public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button back;    private ImageView biment;    private String picPath = null;    private Button xiangji;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        back= (Button) findViewById(R.id.buck);        biment= (ImageView) findViewById(R.id.biment);        xiangji= (Button) findViewById(R.id.xiangji);        back.setOnClickListener(this);        xiangji.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.buck:                /**                 * 打开本地存储                 */                Intent intent = new Intent();                intent.setType("image/*");                intent.setAction(Intent.ACTION_GET_CONTENT);                startActivityForResult(intent, 1);                break;            case R.id.xiangji:                break;        }    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        if (resultCode == Activity.RESULT_OK) {            Uri uri = data.getData();            Log.e("tag", "uri = " + uri);            ContentResolver cr = this.getContentResolver();            switch (requestCode){                case 1:                    /** * 当选择的图片不为空的话,在获取到图片的途径 */                    try {                        String[] pojo = { MediaStore.Images.Media.DATA };                        Cursor cursor = managedQuery(uri, pojo, null, null, null);                        if (cursor != null) {                            int colunm_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);                            cursor.moveToFirst();                            String path = cursor.getString(colunm_index);                            /***                             * * 这里加这样一个判断主要是为了第三方的软件选择,比如:使用第三方的文件管理器的话,你选择的文件就不一定是图片了,                             * * 这样的话,我们判断文件的后缀名 如果是图片格式的话,那就是文件                             */                            if (path.endsWith("jpg") || path.endsWith("png")) {                                picPath = path;                                Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));                                biment.setImageBitmap(bitmap);                            } else {                                picPath = path;                                InputStream is=cr.openInputStream(uri);                                Log.e("lujing"," "+uri.getEncodedPath());                                Toast.makeText(this,uri.getEncodedPath(),Toast.LENGTH_SHORT).show();                            }                        } else {                            alert();                        }                    } catch (Exception e) {                    }                    break;                case 2:                    Bitmap bitmap = null;                    try {                        bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));                        biment.setImageBitmap(bitmap);                    } catch (FileNotFoundException e) {                        e.printStackTrace();                    }                    biment.setImageBitmap(bitmap);                    break;            }        }        super.onActivityResult(requestCode, resultCode, data);    }    private void alert() {        Dialog dialog = new AlertDialog.Builder(this).setTitle("提示")                .setMessage("您选择的不是有效的图片")                .setPositiveButton("确定", new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int which) {                        picPath = null;                    }                }).create();        dialog.show();    }}
原创粉丝点击