android中怎么跳转到相册获取照片并得到url

android中怎么跳转到相册获取照片并得到url,第1张

方法/步骤

1

如下图所示,需要根据URL地址获取加载到图中Anroid机器人所在的位置,这是运行前的效果:

2

首先需根据URL地址获取,如下所示,urladdr即为地址,返回Drawable对象:

//download image from network using @urladdress

private Drawable loadImageFromNetwork(String urladdr) {

// TODO Auto-generated method stub

Drawable drawable = null;

try{

//judge if has picture locate or not according to filename

drawable = DrawablecreateFromStream(new URL(urladdr)openStream(), "imagejpg");

}catch(IOException e){

Logd("test",egetMessage());

}

if(drawable == null){

Logd("test","null drawable");

}else{

Logd("test","not null drawable");

}

return drawable;

}

3

获取到后,需要更新主线程UI资源,考虑到时间以及界面反应延迟等,所以采用线程加以处理,如下图所示:

// image

new Thread(new Runnable(){

Drawable drawable = loadImageFromNetwork(urladdress);

@Override

public void run(){

//post() is quite important,update pictures in UI main thread

imagepost(new Runnable(){

@Override

public void run(){

//TODO Auto-generated method stub

imagesetImageDrawable(drawable);

}

});

}

//download image from network using @urladdress

private Drawable loadImageFromNetwork(String urladdr) {

// 略(如 1 中所示)

}

})start(); //线程启动

4

说明:在上述示例代码中,image是ImageView类的一个对象,也就是APP中的一个显示图像组件,利用获取到的drawable去更新image,运行效果如下所示:

Intent intent = new Intent(); //调用照相机

intentsetAction("androidmediaactionSTILL_IMAGE_CAMERA");

startActivity(intent);

//照片的回调

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

Uri uri = datagetData();

Cursor cursor = thisgetContentResolver()query(uri, null,

null, null, null);

if (cursormoveToFirst()) {

String videoPath = cursorgetString(cursor

getColumnIndex("_data"));// 获取绝对路径

}

}

可以在该回调方法中获得

地点的TAG就是经纬度信息

TAG_GPS_LATITUDE 纬度

TAG_GPS_LATITUDE_REF 纬度参考

TAG_GPS_LONGITUDE 经度

TAG_GPS_LONGITUDE_REF 经度参考

找个经纬度转换工具转成地址就好了(虽然没试过,但Android自带的geocoder恐怕是不行的,需要google的网络服务,而google的网络服务在大陆嘛……你懂的)

public class TestCameraActivity extends Activity implements OnClickListener{    private Uri mOutPutFileUri;

 @Override

    public void onCreate(Bundle savedInstanceState) {

        superonCreate(savedInstanceState);

        setContentView(Rlayoutmain);

        

        Button takePiCButton = (Button) thisfindViewById(Ridbutton1);

        takePiCButtonsetOnClickListener(this);

    }

@Override

 public void onClick(View v) {

  switch (vgetId()) {

  case Ridbutton1:

   saveFullImage();

   break;

default:

   break;

  }

 }

 

 private void saveFullImage(){

  Intent intent = new Intent(MediaStoreACTION_IMAGE_CAPTURE);

  //文件夹aaaa

  String path = EnvironmentgetExternalStorageDirectory()toString()+"/aaaa";

  File path1 = new File(path);

  if(!path1exists()){

   path1mkdirs();

  }

  File file = new File(path1,SystemcurrentTimeMillis()+"jpg");

  mOutPutFileUri = UrifromFile(file);

  intentputExtra(MediaStoreEXTRA_OUTPUT, mOutPutFileUri);

  startActivityForResult(intent, 1);

  

 }

 

 @Override

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  superonActivityResult(requestCode, resultCode, data);

  if(requestCode == 1){

   Uri imageUri = null;

   if(data != null){

    if(datahasExtra("data")){

     Bitmap thunbnail = datagetParcelableExtra("data");

     //处理缩略图

    }

   }else{

    //处理mOutPutFileUri中的完整图像

   }

   

  }

 }

}

Uri

uri

=

datagetData();

这样是可以得到相片的位置的,但是比如使用camera360就不能再拍完照片后不能返回到我的界面,一直卡在camera360那个位置

以上就是关于android中怎么跳转到相册获取照片并得到url全部的内容,包括:android中怎么跳转到相册获取照片并得到url、如何获得android手机拍照后照片的存放目录、请问:Android中怎么获取到图片属性上的地点信息,地点信息对应exif中key是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9730965.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存