android ui 读取外部设备scdard的图片设置程序背景

private static int photo_pick = 1;

/*

调用select picture,如果是想选择audio 则把 “image” 变为 “audio”

有关之类的技巧可以看 http://blog.csdn.net/chenzheng_java/article/details/6266135

*/

private void startSetBackGroundActivty(){

  
            Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT);
            innerIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");

/*

此处返回到result是 图片在media的uri

*/

            startActivityForResult(innerIntent, photo_pick);
            
        }


        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
          // 接收被调方 Activity 返回的数据
            switch (resultCode) {
                case RESULT_OK:

                        if(requestCode == photo_pick){
                            Uri uri = null;
                            uri = data.getData();
                            if(uri == null)
                                break;
                            Log.i(TAG,"RETURN VALUE "+uri);
                            ContentResolver resolver = null;
                            resolver = this.getContentResolver();
                            Media m = new Media();
                            Bitmap bm = null ;
                            try {
                                bm =  m.getBitmap(resolver, uri);
                            } catch (FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                            

                            mDraw = new  BitmapDrawable(bm);

 this.getWindow().setBackgroundDrawable(mDraw);

                            mDraw = null;

/*       //以下 保存设置好的文件的某个地方(BACKGROUND_FILE.
                          
                            if(BACKGROUND_FILE.exists()){
                                BACKGROUND_FILE.delete();
                            }
                            try {
                                    if(!mBackGroundDir.exists())
                                        mBackGroundDir.mkdir();
                                    BACKGROUND_FILE.createNewFile();
                                } catch (IOException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }                            
                                
                            FileInputStream fin = null;   
                            try {
                                fin = (FileInputStream) resolver.openInputStream(uri);
                            } catch (FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                            FileOutputStream fos = null;
                            try {
                                fos = new FileOutputStream(BACKGROUND_FILE);
                            } catch (FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                Log.i(TAG,"-----------------------=== \n");
                                e.printStackTrace();
                            }
                            byte[] buffer = new byte[4096];
                            int ret = 0;
                            
                            try {
                                while((ret = fin.read(buffer, 0, 4096)) > 0 ){
                                    fos.write(buffer, 0, ret);
                                }
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }                                

                        }

*/

                        break;
            }
        }
       

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值