转自: http://dev.10086.cn/cmdn/wiki/index.php?edition-view-6362-1.html
我要实现的是:点击Pictures按钮后,获取手机内所有图片,选择某一个图片,并显示到ImageView中。
应用范围: 图片上传时的图片选择 , 类似"浏览"。
所有的图片都会列出来,包括目录。
在Activity Action里面有一个“ACTION_GET_CONTENT”字符串常量,该常量让用户选择特定类型的数据,并返回该数据的URI.我们利用该常量,然后设置类型为“image/*”,就可获得android手机内的所有image。
main.xml :
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/b01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/iv01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
Lesson_01_Pic.java:
view plaincopy to clipboardprint?
package com.yfz;
import java.io.FileNotFoundException;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class Lesson_01_Pic extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button)findViewById(R.id.b01);
button.setText("选择图片");
button.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent();
/* 开启Pictures画面Type设定为image */
intent.setType("image/*");
/* 使用Intent.ACTION_GET_CONTENT这个Action */
intent.setAction(Intent.ACTION_GET_CONTENT);
/* 取得相片后返回本画面 */
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
Log.e("uri", uri.toString());
ContentResolver cr = this.getContentResolver();
try {
Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
ImageView imageView = (ImageView) findViewById(R.id.iv01);
/* 将Bitmap设定到ImageView */
imageView.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
Log.e("Exception", e.getMessage(),e);
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
好了,就将这么多。
自己补充:如果想获得选取图片的文件路径、文件名及大小的方法 ,依旧是在onActivityResult ()方法里得到的:
ContentResolver cr = this.getContentResolver();
Cursor cursor = cr.query(uri, null, null, null, null);
String imgNo = cursor.getString(0);//图片编号
String path = cursor.getString(1);//图片文件路径
String imgSize = cursor.getString(2);//图片大小
String imgName = cursor.getString(3);//图片文件名
//imageView.setImageURI(uri);//也可以直接显示图片
分享到:
相关推荐
PYPlayer是一款专为Android平台设计的本地音乐播放器...以上是对PYPlayer这款Android本地音乐播放器可能涉及的技术点的概述。通过深入学习和实践这些知识,开发者可以提升自己在Android音频播放器开发领域的专业技能。
这个压缩包文件“安卓Android源码——网络本地音乐播放器工程源码.zip”包含了一个用于在安卓设备上实现网络和本地音乐播放功能的应用程序源代码。这个源码库是学习和理解安卓应用开发,特别是音乐播放器应用开发的...
2.8.3 android本地广播 2.9 小结 第3章 设备界面演练 3.1 文字标签处理 3.2 改变屏幕窗口元素的背景颜色 3.3 改变textview的文字颜色 3.4 实现textview文字的替换 3.5 获取手机分辨率 3.6 样式修饰处理 3.7 按钮事件...
2. **本地音乐库管理**:为了能够列出并播放手机上的音乐,开发者需要访问Android的媒体存储库。ContentResolver和MediaStore类是关键,它们可以获取到设备上的所有音乐文件信息,如曲目名、歌手、专辑等元数据。 3...
这个项目可以帮助开发者理解如何将Android SDK与网络服务集成,实现在移动设备上流畅地播放流媒体音乐。下面,我们将详细探讨这个项目涉及的主要知识点: 1. **Android基础知识**: - **Activity生命周期**:在...
10. **版本控制**:压缩包中的源代码可能来自一个版本控制系统,如Git,这样开发者可以追踪代码变更历史,协同工作。 通过这个项目,学习者可以深入理解Android应用开发的基本概念,包括UI设计、媒体处理、服务组件...
3. 设置Android SDK路径:在Eclipse的首选项中选择Android,然后设置本地Android SDK的安装路径。 4. 创建一个新的Android虚拟机:打开Android SDK and AVD Manager来创建虚拟机。 #### 四、项目创建与目录结构 **...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
5. **权限管理**:为了访问手机的媒体库和播放音乐,应用需要请求相应的权限,如`READ_EXTERNAL_STORAGE`和`ACCESS_MEDIA_LOCATION`。开发者必须确保正确处理权限请求,以遵循Android的权限模型。 6. **通知栏控制*...
这个项目很可能是基于早期的Android 2.1版本,尽管现在最新的Android版本已经发展到了Android 12,但学习老版本的代码可以帮助我们了解Android开发的历史和演变。 首先,我们要理解的是Android 2.1(API级别7)的...
11. **权限管理**:Android系统要求应用在运行时请求权限,如读取存储、访问媒体库等。开发者需要处理权限请求逻辑。 12. **UI/UX设计**:界面设计应直观易用,遵循Material Design指南,提供良好的用户体验。使用...
1. 音乐加载:从本地存储或者网络源加载音乐文件,可以通过`ContentResolver`查询媒体库,或者通过HTTP请求获取网络资源。 2. 播放控制:使用`MediaPlayer`或`ExoPlayer`对象,调用其`start()`、`pause()`、`stop()...
首先,我们要知道Android音乐播放器的核心是媒体库管理和音频播放。在Android中,`MediaPlayer`类是用于播放音频和视频的基础组件。通过创建`MediaPlayer`对象,我们可以加载音频文件、控制播放状态(如播放、暂停、...
- 数据的持久化可以使用SQLite数据库,将用户喜好、播放历史等信息保存在本地。 3. **音频处理**: - 使用`MediaPlayer`类播放音频,它提供了播放、暂停、停止、下一曲、上一曲等基本操作。 - `AudioManager`...
1. **媒体库管理**:音乐播放器首先需要能够扫描和管理设备上的音频文件,通常通过ContentResolver和MediaStore类来获取音乐信息,如歌曲名称、艺术家、专辑等。 2. **播放控制**:实现播放、暂停、停止、下一曲、...
7. **权限管理**:Android系统要求应用获取特定权限才能访问媒体库、读写外部存储和播放音频。开发者需要在Manifest.xml中声明相应的权限,如READ_EXTERNAL_STORAGE和INTERNET。 8. **音频焦点管理**:多个应用可能...
1. **Android SDK**: Android Software Development Kit是开发Android应用的基础,包含了编译、调试所需的工具和库。在这个项目中,我们需要确保已经安装了对应的Android版本SDK,并配置了相应的API级别。 2. **...
7. **文件选择与播放**:如果用户希望播放本地存储的特定MP3文件,我们可以使用`Intent`来打开文件选择器,然后将选定的文件路径传递给`MediaPlayer`进行播放。 8. **音频效果**:为了增强用户体验,可能还需要添加...