相册Android2.2源代码(android相册开发)
admin 发布:2022-12-19 21:08 165
本篇文章给大家谈谈相册Android2.2源代码,以及android相册开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Android怎么调用系统相册将选中的图片设置为布局的背景,有没有案例或源码?
- 2、哪位大虾有Android的源码?能不能共享一份?多谢
- 3、求:android 获取系统相册图片并显示在当前页面的代码
Android怎么调用系统相册将选中的图片设置为布局的背景,有没有案例或源码?
Android中调用系统相机来拍摄照片的代码,如下:
1、首先设置Uri获取判断以及相机请求Code
public final int TYPE_TAKE_PHOTO = 1;//Uri获取类型判断
public final int CODE_TAKE_PHOTO = 1;//相机RequestCode
2、调起系统相机
Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = getMediaFileUri(TYPE_TAKE_PHOTO);
takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takeIntent, CODE_TAKE_PHOTO);
3、封装获取Uri代码
public Uri getMediaFileUri(int type){
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "相册名字");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
//创建Media File
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == TYPE_TAKE_PHOTO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
} else {
return null;
}
return Uri.fromFile(mediaFile);
}
4、相机拍照完毕后获取返回数据,并在页面显示照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CODE_TAKE_PHOTO:
if (resultCode == RESULT_OK) {
if (data != null) {
if (data.hasExtra("data")) {
Log.i("URI", "data is not null");
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);//imageView即为当前页面需要展示照片的控件,可替换
}
} else {
Log.i("URI", "Data is null");
Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath());
imageView.setImageBitmap(bitmap);//imageView即为当前页面需要展示照片的控件,可替换
}
}
break;
}
}
特殊:
一般情况,以上代码在Android7.0以下,也就是api24时,运行是没有任何问题的。可是当targetSdkVersion变成24及其以上并且在android7.0(及以上版本)系统运行时,会抛出异常:FileUriExposedException。
哪位大虾有Android的源码?能不能共享一份?多谢
在eclipse/myeclipse中查看android的源代码
1. 下载源代码,地址:
2. 解压至SDK目录下。顺便把常用的版本对应的目录列下
android1.5 -------- android-3
android1.6 -------- android-4
android2.1-update1 -------- android-7
android2.2 -------- android-8
在对应的版本下新建sources目录,把对应的源代码解压至此。
如我的android2.2,解压至F:\android\sdk\android-sdk-windows\platforms\android-8\sources
3. 修改配置文件
在对应的android-x目录下,修改source.properties文件,修改后文件内容如下:
### Android Tool: Source of this archive.
#Thu Oct 28 12:36:29 CST 2010
Pkg.Desc=Android SDK Platform 2.2_r1
#Pkg.UserSrc=false
Pkg.UserSrc=true
Archive.Arch=ANY
Platform.Version=2.2
#Pkg.DescUrl=http\://developer.android.com/sdk/Pkg.DescUrl=sources
Archive.Os=WINDOWS
#Pkg.SourceUrl=https\://dl-ssl.google.com/android/repository/repository.xml
Pkg.SourceUrl=sources
Pkg.Revision=2
AndroidVersion.ApiLevel=8
至此,在ide中打开,即可通过Ctrl+鼠标点击查看对应类的源码,也可以直接从引用的jar包中打开。
求:android 获取系统相册图片并显示在当前页面的代码
先初始化;
注意自定义 的
private final String IMAGE_TYPE = "image/*";private final int IMAGE_CODE = 0;
private void setImage() {
Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE);}
这里使用Intent获得相册图片数据,并返回原来界面;
这里说明一下
startActivityForResult(getAlbum, IMAGE_CODE);
补充{
startActivityForResult与startActivity的不同之处在于:
1、startActivity( )
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
2、startActivityForResult( )
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。
}
startActivityForResult(getAlbum, IMAGE_CODE);
这里采用startActivityForResult来做跳转,此处的IMAGE_CODE实质是0为一个依据,可以写其他的值,但一定要=0
然后重写onActivityResult用于接收刚刚得到的数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bm = null; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try {
Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm); } catch (IOException e) {
e.printStackTrace(); }
}
补充{
ContentProvider-----数据提供给第三方应用程序使用时使用
因为在Android系统里面,数据库是私有的。一般情况下外部应用程序是没有权限读取其他应用程序的数据。如果你想公开你自己的数据,你有两个选择:你可以创建你自己的内容提供器(一个ContentProvider子类)或者你可以给已有的提供器添加数据-如果存在一个控制同样类型数据的内容提供器且你拥有写的权限
}
这里是创建一个新的内容提供器,然后在Activity当中通过getContentResolver()可以得到当前应用的 ContentResolver实例
if (requestCode == IMAGE_CODE) {
resultCode为回传的标记这句话是在确认是否回传的是你所需要的;如果是就执行try;不然就执行catch (IOException e) {
e.printStackTrace();}先说这里当try语句中出现异常是时,会执行catch中的语句,IOException e也就是实例化Exception类型的对象。e是此对象引用名称。然后e(引用)会自动调用Exception类中指定的方法,也就出现了e.printStackTrace() ;。printStackTrace()方法的意思是:在命令行打印异常信息在程序中出错的位置及原因。
try {
Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm);接收数据处理数据并显示照片。
然后进行测试。
另附源码:
MainActivity:
package com.example.administrator.myapplication1;import android.graphics.BitmapFactory;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.io.IOException;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.app.Activity;import android.content.ContentResolver;import android.content.Intent;import android.graphics.Bitmap;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends AppCompatActivity { private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0; private Button choose=null; private ImageView imgShow; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init();} private void init() { choose=(Button) findViewById(R.id.button1); imgShow=(ImageView) findViewById(R.id.imgShow); choose.setOnClickListener(listener); } private OnClickListener listener=new OnClickListener(){ @Override public void onClick(View v) {
setImage(); }
}; private void setImage() {
Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE); } protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap bm = null; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try {
Uri originalUri = data.getData(); bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); imgShow.setImageBitmap(bm); } catch (IOException e) {
e.printStackTrace(); }
}
}
}
layout:activity_main.xml:
?xml version="1.0" encoding="utf-8"?LinearLayout xmlns:android="" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选择照相" android:layout_marginRight="190dp" android:layout_marginTop="8dp" android:paddingBottom="2dp" android:background="#aabbcc" / ImageView android:id="@+id/imgShow" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="15dip" //LinearLayout
相册Android2.2源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于android相册开发、相册Android2.2源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 04-29恐龙快打源代码(java恐龙快打)[20240429更新]
- 04-29微信小程序源代码下载(微信小程序代码下载)[20240429更新]
- 04-29web课程设计源代码(网页设计与制作课程代码)[20240429更新]
- 04-29asp.net个人主页源代码(ASPNET网站开发)[20240429更新]
- 04-29thinkphpapp源代码(thinkphp源码安装教程)[20240429更新]
- 04-29包含wget源代码分析的词条[20240429更新]
- 04-29jsp收费系统源代码的简单介绍[20240429更新]
- 04-29在线网页源代码(在线网页源代码查看器)[20240429更新]
- 04-29手机浏览器显示源代码(手机浏览器怎么看源代码)[20240429更新]
- 04-28安卓小游戏代码项目下载(java简单手机小游戏源代码)[20240428更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接