本地图片选择(打开媒体库,选择图片)

在此调查中我要实现的是:点击Pictures按钮后,获取手机内所有图片,选择某一个图片,并显示到ImageView中。

应用范围: 图片上传时的图片选择  , 类似"浏览"。

效果:

所有的图片都会列出来,包括目录。

在Activity Action里面有一个“ACTION_GET_CONTENT”字符串常量,该常量让用户选择特定类型的数据,并返回该数据的URI.我们利用该常量,然后设置类型为“image/*”,就可获得android手机内的所有image。

main.xml :

[xhtml] view plaincopyprint?

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello"
  11. />
  12. <Button
  13. android:id="@+id/b01"
  14. android:layout_width="fill_parent"
  15. android:layout_height="wrap_content"
  16. />
  17. <ImageView
  18. android:id="@+id/iv01"
  19. android:layout_width="fill_parent"
  20. android:layout_height="wrap_content"
  21. />
  22. </LinearLayout>

Lesson_01_Pic.java:

[java] view plaincopyprint?

  1. package com.yfz;
  2. import java.io.FileNotFoundException;
  3. import android.app.Activity;
  4. import android.content.ContentResolver;
  5. import android.content.Intent;
  6. import android.graphics.Bitmap;
  7. import android.graphics.BitmapFactory;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.view.View;
  12. import android.widget.Button;
  13. import android.widget.ImageView;
  14. public class Lesson_01_Pic extends Activity {
  15. /** Called when the activity is first created. */
  16. @Override
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);
  20. Button button = (Button)findViewById(R.id.b01);
  21. button.setText("选择图片");
  22. button.setOnClickListener(new Button.OnClickListener(){
  23. @Override
  24. public void onClick(View v) {
  25. Intent intent = new Intent();
  26. /* 开启Pictures画面Type设定为image */
  27. intent.setType("image/*");
  28. /* 使用Intent.ACTION_GET_CONTENT这个Action */
  29. intent.setAction(Intent.ACTION_GET_CONTENT);
  30. /* 取得相片后返回本画面 */
  31. startActivityForResult(intent, 1);
  32. }
  33. });
  34. }
  35. @Override
  36. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  37. if (resultCode == RESULT_OK) {
  38. Uri uri = data.getData();
  39. Log.e("uri", uri.toString());
  40. ContentResolver cr = this.getContentResolver();
  41. try {
  42. Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
  43. ImageView imageView = (ImageView) findViewById(R.id.iv01);
  44. /* 将Bitmap设定到ImageView */
  45. imageView.setImageBitmap(bitmap);
  46. } catch (FileNotFoundException e) {
  47. Log.e("Exception", e.getMessage(),e);
  48. }
  49. }
  50. super.onActivityResult(requestCode, resultCode, data);
  51. }
  52. }

好了,就将这么多。

时间: 2024-10-11 09:53:13

本地图片选择(打开媒体库,选择图片)的相关文章

Qt 打开安卓相册选择图片并获取图片的本地路径

Qt 打开安卓相册选择图片并获取图片的本地路径 步骤如下: 通过 Intent 打开安卓的系统相册. 推荐使用 QAndroidJniObject::getStaticObjectField 获取静态字段. QAndroidJniObject action = QAndroidJniObject::getStaticObjectField( "android/content/Intent", "ACTION_GET_CONTENT", "Ljava/lan

(源代码分析)Android-Universal-Image-Loader (图片异步载入缓存库)的使用配置

转载请注明出处:http://blog.csdn.net/u011733020 前言: 在Android开发中,对于图片的载入能够说是个老生常谈的问题了,图片载入是一个比較坑的地方.处理不好,会有各种奇怪的问题,比方 载入导致界面卡顿.程序crash. 因此 怎样高效的载入大量图片.以及怎样载入大分辨率的图片到内存.是我们想要开发一款优质app时不得不去面对与解决的问题. 通常开发中,我们仅仅有两种选择:① 使用开源框架  ②自己去实现处理图片的载入与缓存. 通常一開始让我们自己去写,我们会无从

如何在android上 使用gif图片(android开源库android-gif-drawabl)

android开源库android-gif-drawable的使用 android的开源库是用来在android上显示gif图片的.我在网上查了一下,大家说这个框架写的不错,加载大的gif图片   不会内存溢出,于是我就想试试这个开源库,我下了作者的源代码和例子,但是我却跑不起来.不知道为什么,我又到网上去找使用这个开源库的例子发现有一个,我也下载了下来,发现还是跑不起来.我决定自己好好试试这个源代码,终于在我的努力下现在可以用了.废话完了 现在教大家怎么用这个库.大家不想看怎么做的 可以到后面

android:强大的图片下载和缓存库Picasso

1.Picasso简介 Picasso是Square公司出品的一个强大的图片下载和缓存图片库.官方网址是:http://square.github.io/picasso/ 只需要一句代码就可以将图片下载并设置到ImageView上. Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 2.主要特点 2.1Adapter downloads 使用ListView,GridView的时候

图片懒加载库echo.js源码学习

最近不是在学习设计模式吗,然后就看到了代理模式加载图片的样例,然后自己实现了一下,就发现,自己写的这货每次就只能加载一张图片,而且图片要放在哪也是个很严重的问题 然后就去了 gayhub 找了找了找流行的图片懒加载库,这一找,就找到了一个echo.j是,打开一看,源码只有100多行吧,震惊..,看完源码,哎,木有上代理模式呀 仔细学习了下源码:觉得这种做法比较适合图片位置确定场景的吧,比如文章啊,一篇文章老长了,里面有蛮多图片散落在不同的地方,这样就比较合适,有可能有很多图片读者都不会翻到哪里,

Android开发本地及网络Mp3音乐播放器(十九)通知媒体库更新刚下载的MP3

实现功能: 通知媒体库更新 纠结了几天,百度到一个方法,可以在安卓4.4,通知媒体库更新. 媒体库更新了,重新打开APP,就可以看到新的歌曲,但这样还是不完善. 后续将博文,将实现 下载音乐成功后,通更新媒体库后,更新本地音乐列表. 因为,没有自己的服务器,所以网络音乐所有相关功能(包含搜索音乐.下载音乐.下载歌词)均无法保证时效性,建议,尽快下载和练习:如果你下载时候,已经因为我采集的服务器更改规则,请给我留言,如果可以解决,我将在有空的时候献上新的源码. 截止到目前的源码下载: http:/

php把图片存入mysql DATA库

php把图片存入mysql DATA库----在网站建设过程中,笔者与大家分享一下用php把图片存入mysqlDATA库中并在网页上显示的代码,具体如下: //保存图片到DATA库 If($Picture != "none") { $PSize = filesize($Picture); $mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize)); mysql_connect($host,$user

MapleBacon 是一个非常棒的图片下载和缓存库

http://www.oschina.net/ios/codingList/367/ios-image http://www.oschina.net/p/maplebacon MapleBacon 是一个非常棒的图片下载和缓存库,使用 Swift 开发,用于 iOS 系统. 示例代码: import MapleBacon @IBOutlet weak var imageView: UIImageView! if let imageURL = NSURL(string: "something.jp

UIImagePickerController(获取相册图片,打开相机)

UIImagePickerController的使用一定要在controller中,因为需要弹出控制器,如果不是在controller中,则可以通过响应者链查找获得controller,也可以通过代理方法回调 //本文查看地址http://write.blog.csdn.net/postedit - (IBAction)pickPhotoLibrary:(id)sender { if (_imagePicker == nil) { _imagePicker = [[UIImagePickerCo