
方法/步骤
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是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)