问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何打开图库android gallery

发布网友 发布时间:2022-05-01 16:24

我来回答

1个回答

热心网友 时间:2022-06-19 12:29

  Android原生内置了很多App,而Gallery为图库,用于操作设备上的图片,它会在开机的时候主动扫描设备上存储的图片,并可以使用Gallery操作它们。既然要使用Gallery,那么先看看它的AndroidManifest.xml清单文件。

<activity android:name="com.android.camera.ImageGallery"
android:label="@string/gallery_label"
android:configChanges="orientation|keyboardHidden"
android:icon="@drawable/ic_launcher_gallery">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/image" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/video" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.OPENABLE" />
<data android:mimeType="vnd.android.cursor.dir/image" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.OPENABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/image" />
</intent-filter>
</activity>
  上面是Gallery的AndroidManifest.xml文件中的部分代码,展示了ImageGallery,从众多Intent-filter中可以看出,选取图片应该使用"android.intent.action.PICK",它有两个miniType,"image/*"是用来获取图片的、"video/*"是用来获取视频的。Android中众多Action的字符串其实被封装在Intent类中,android.intent.action.PICK也不例外,它是Intent.ACTION_PICK。

  既然知道了启动Gallery的Action,那么再看看ImageGallery.java的源码,找找其中选中图片后的返回值。

private void launchCropperOrFinish(IImage img) {
Bundle myExtras = getIntent().getExtras();

long size = MenuHelper.getImageFileSize(img);
if (size < 0) {
// Return if the image file is not available.
return;
}

if (size > mVideoSizeLimit) {
DialogInterface.OnClickListener buttonListener =
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
};
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_info)
.setTitle(R.string.file_info_title)
.setMessage(R.string.video_exceed_mms_limit)
.setNeutralButton(R.string.details_ok, buttonListener)
.show();
return;
}

String cropValue = myExtras != null ? myExtras.getString("crop") : null;
if (cropValue != null) {
Bundle newExtras = new Bundle();
if (cropValue.equals("circle")) {
newExtras.putString("circleCrop", "true");
}

Intent cropIntent = new Intent();
cropIntent.setData(img.fullSizeImageUri());
cropIntent.setClass(this, CropImage.class);
cropIntent.putExtras(newExtras);

/* pass through any extras that were passed in */
cropIntent.putExtras(myExtras);
startActivityForResult(cropIntent, CROP_MSG);
} else {
Intent result = new Intent(null, img.fullSizeImageUri());
if (myExtras != null && myExtras.getBoolean("return-data")) {
// The size of a transaction should be below 100K.
Bitmap bitmap = img.fullSizeBitmap(
IImage.UNCONSTRAINED, 100 * 1024);
if (bitmap != null) {
result.putExtra("data", bitmap);
}
}
setResult(RESULT_OK, result);
finish();
}
}
  以上的ImageGallery.java的部分源码,从setResult()方法可以看出,它返回的Intent包含了选中图片的Uri,它是一个content://开头的内容提供者,并且如果传递过去的Intent的Extra中,包含一个name为"return-data"并且值为true的时候,还会往Extra中写入name为"data"的图片缩略图。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2023文科男生最吃香的专业 哪些专业好就业 在南京想找上海音乐学院的老师,怎么找? 荔枝核怎么服用-荔枝核煮水一般煮几颗合适 属虎适合什么名字2022年新生儿 有内涵热门名字精选 国内读研好,还是出国读研好 出国读研和国内读研哪个更好 在一个比例中,如果两个外项互为倒数。那么两个内向的什么是一?_百度知 ... 两个外项互为倒数,一个内向是8分之3,另一个内项是多少【怎样求出来... 在一个比例中,两个外向互为倒数,其中一个内项是8,另一个内项是_百度... 在比例中两个外项互为倒数,其中一个内向是2.75,另一个内项是多少_百度... virtualBox 中怎么关闭默认开启的摄像头灯 PSP按下select键怎么多出了一个GAME CATEGORY和 ISO VIDEO MOUNT这两个系统目录? win7怎样使用kernel streaming 地下交通站全集下载地址 那些网站有篮球视频 C# 摄像头捕获及视频压缩 怎么才能用c#实现usb摄像头录像啊,&#xF602;急用 晚上吃蒜了怎么去味道 汕头市鸿海油料有限公司怎么样? 暗黑2野蛮人技能加点 暗黑2的野蛮人1~30级怎样加属性和技能点?求高手回答 鸿海公司在哪里? 未来鸿海经常拖欠工资 暗黑2野蛮人怎么加属性和技能点 暗黑2 野蛮人加属性点(注意不是技能点) 霞浦县鸿海生态农业专业合作社怎么样? 暗黑破坏神2 1.11b野人加点 暗黑2 野蛮人怎么加点!! 鸿海集团的介绍 暗黑2野蛮人如何加点(技能和属性) 纪录片&lt;&lt;中华之剑&gt;&gt;视频完整版在哪里可以观看或下载? http://www.bilibili.tv/video/av989922/ 猫和老鼠里的滑稽笑声 东方神起08年最新视频 MP4下了电影为什么说是没有文件呢? jsp中有关连接数据库的问题,与PreparedStatement的用法?下面这串代码,能解释下吗?谢谢 我在北京,居住证怎么办,需要什么手续 北京市居住证怎样办理 什么奥特曼和奥特曼打?一真一假也行,表明哪一集啊!!!谢谢!!! 购买交易性金融资产另支付相关交易费用的税费计入哪里? 交易性金融资产购入时发生的交易税费会影响企业本期净利润吗? 女子抽脂后进ICU后身亡,抽脂手术有什么危害? 在交易性金融资产的取得过程中发生的税费应计入哪个会计科目,为什么 交易性金融资产的计税基础和账面价值不一样是如何影响所得税的 交易性金融资产买进和卖出时产生的税费怎么处理? 电脑要改wifi密码在哪里弄 跪求!跪求!我在线等。交易性金融资产相关税费应该计什么科目里?我做的题里面为什么算做投资收益里。 丹佛斯变频器怎样启动 丹佛斯fc360变频器说明书 刚接触丹佛斯变频器 VLT 2800 端子启动怎么设置?为什么短接12 18 27 号端子还是启动_百度问一问