Android中实现从SD卡的Gallery画廊带回图片

Android实现画廊效果 (附完整源码) 阅读详情

   

 在App中我们常常遇到通过点击某个按钮,就会跳转到图片库页面,也就是Gallery画廊,那么一方面我们要如何从其中获取我们想要的图片呢?并且带回我们正在浏览的页面。另一方面,我们还有控制图片的大小,如何让带回的图片自适应我们正在浏览页面框的大小?接下来我就为大家揭晓答案

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

</LinearLayout>

先建一个可以点击的按钮和一个放图片的ImageView控件,接下来完成代码部分

ImageDemoActivity.java

import java.io.FileNotFoundException;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class ImageDemoActivity extends Activity {
    /** Called when the activity is first created. */
	private Button btn1;
	private ImageView imageView1;
	int hd;
	int wd;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn1=  (Button) findViewById(R.id.button1);
        imageView1=  (ImageView) findViewById(R.id.imageView1);
        btn1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				//用Intent调用系统图库
				Intent i=new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
				startActivityForResult(i, 0);
			}
		});
        
    }
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode==RESULT_OK&&requestCode==0) {
			Uri imageUri=data.getData();
			Display display=getWindowManager().getDefaultDisplay();//获取设备尺寸
			hd=display.getHeight();
			wd=display.getWidth();
			BitmapFactory.Options bo=new BitmapFactory.Options();//只加载图片的尺寸
			bo.inJustDecodeBounds=true;//设置为true,并不会返回一个Bitmap图像
			try {
				Bitmap bitmap=BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri), null, bo);
				//通过getContentResolver().openInputStream(imageUri)将URI转换成流
				int heightRatio=(int) Math.ceil(bo.outHeight/hd);
				int widthRatio=(int) Math.ceil(bo.outWidth/wd);
				if (heightRatio>widthRatio) {
					bo.inSampleSize=heightRatio;
				}else {
					bo.inSampleSize=widthRatio;//inSampleSize成员变量,可以把图像的实际宽高和期望的比较得到合理的值
				}
				//以上代码只是设置图片尺寸,这个时候我要整个图片加载并显示
				bo.inJustDecodeBounds=false;
				bitmap=BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri), null, bo);
				//根据第一次得到的合适的缩放比例生成缩络图
				imageView1.setImageBitmap(bitmap);
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
}
首先我们是通过Intent调用系统图库
Intent i=new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

为了让图片能够符合我们的要求,这里用到了startActivityForResult()方法来带回图片,在完成方法startActivityForResult()之后我们要覆写onActivityResult()方法,此方法能够帮我们传递回调的数据
为了让图片的大小能够符合我们显示器的大小,这里做了一些比较通过获取设备的尺寸BitmapFactory.Options bo=new BitmapFactory.Options();,其他的都在代码中做了详细的注释,就不一一介绍了,对了,要注意bo.inJustDecodeBounds=true;在代码中的变化。







Android画廊组件实现图片切换 使用Gallery类及图片切换器ImageSwitcher实现图片的切换,上面布局是小图画廊,下面布局是大图显示。 立即下载

相关推荐

Android 图片浏览功能简单实现(画廊效果实现,支持放大缩小)

Android 图片浏览功能简单实现(画廊效果实现,支持放大缩小),博客参考地址:http://blog.csdn.net/qq_31546677/article/details/76472598

android相册画廊,Android-画廊实现 (Gallery , ImageSwitch)

1.回顾上篇学习 SrcollView 和 ViewFlipper 的实现 图片轮播效果2.重点(1)Gallery 实现(2)ImageSwitch实现(3)Gallery 的OnItemSelectedListener 实现(4)ImageSwitch 的ViewFactory 实现(5)实现实例——Gallery实现缩略图,ImageSwitch实现 放大效果3.实现3.1 说明Gall...

weixin_35854529的博客 714

android开发 点击按钮从sd卡选择图片显示在ImageView

android开发 点击按钮从sd卡选择图片显示在ImageView

android图片画廊,获取Android上的照片画廊列表

以下是几个简单步骤的完整解决方案:接下来的几个步骤将指导您如何创建一个Vector将保存在给定设备上找到的相册的文件。每个相册将保存一个预览图像,以及一个内部Vector将保存该相册的所有图像。创建一个对象,该对象将保存从存储中提取的图像。我们将其称为PhoneAlbum。这是它的外观:public class PhoneAlbum {private int id;private String n...

weixin_31099291的博客 253

Android ImageView实现照片墙效果(卡片式滑出效果) 源码

ImageView实现照片墙效果,卡片效果,照片叠加,滑动切换照片,切换移除和下一张呈现处理很好,并且于底部view处理冲突事件

图片浏览(带水平滑动的GridView和带gallery的ViewPage)

带水平滚动的gridveiw 重载HorizontalScrollView实现类Gallery功能 ViewPage支持图片缩放 支持网络图片显示

Android 使用viewpager实现画廊式效果(展示图片)

先看一下效果 1.创建一个自定义类 ZoomOutPageTransformer public class ZoomOutPageTransformer implements ViewPager.PageTransformer { //自由控制缩放比例 private static final float MAX_SCALE = 1f; private static final float MIN_SCALE = 0.8f;//0.85f @Override

weixin_42630638的博客 2345

android应用--在GridView上显示SD卡上的所有图片

浏览sd卡上的图片文件,显示在GridView控件上,自定义图片适配器,点击小图,能在对话框上显示大图

android Gallery的学习心得

Gallery是android的一个浏览图片的组件(不只是图片,可以用适配器),Gallery的中文意思也是画廊的意思,就是说把图片排成一行,然后手动滑动阅览   Gallery的用法很简单,也类似于ListView, GridView。所以如果你对每一个单元图片有更多的信息要显示的话,可以选择适配器   我做的这个小程序主要目的是将SD卡中已经存在的几张图片显示出来,有两个布局文件很简单

oneRain88的专栏 3533

Frida提取Cocos游戏XXTEA密钥的实战方法论

XXTEA是一种轻量级分组加密算法,广泛用于移动端游戏通信保护;其128位密钥的安全性直接决定网络协议逆向成败。在Cocos引擎生态中,密钥常以静态常量、JNI动态传递或Native运行时派生三种形态存在,导致传统静态分析失效。Frida凭借跨Java/Native注入能力与内存实时观测优势,成为捕获密钥‘出生瞬间’的关键工具——尤其适用于hook xxtea_encrypt函数入口、监控JNI参数传递、设置内存断点追踪派生过程等场景。本文聚焦Cocos2d-x与Cocos Creator项目,覆盖从密钥识

weixin_33509600的博客 416

weblogic 集群搭建,双机部署,相关问题记录

4.5.集群搭建1 参考网址https://wenku.baidu.com/view/76365129cd1755270722192e453610661ed95aa4.html IP地址 端口 角色 192.168.1.160 9001 AdminServer ...

zl386119974的专栏 1669

Android 循环Gallery,3D Gallery以及HorizontalScrollView替代Gallery(1)

/ Toast.makeText(Main.this, “点击了” + num, Toast.LENGTH_SHORT)// Toast.makeText(Main.this, “点击了” + num, Toast.LENGTH_SHORT)tvHint.setText(“3D Gallery:点击了” + num);tvHint.setText(“循环Gallery:点击了” + num);tvNum.setText(“循环Gallery:点击了” + num);

2401_85730195的博客 630

SIC知识(8)--碳化硅的制备难点

6. 器件制造难点:碳化硅器件制造过程中的掺杂步骤需要在高温下完成,且需要采用高温离子注入的方式,这与传统硅基器件的扩散工艺不同。这些步骤需要精密的设备和严格的工艺控制,以确保器件的结构和功能。综上所述,碳化硅的制备难点相较于传统硅基器件主要在于更高的制备温度、更慢的生长速度、晶型控制的复杂性、后加工的难度、外延工艺的低效率以及器件制造的特殊要求和较高的成本。- **数据管理**:需要有效的数据管理系统来跟踪和记录生产过程中的每一个步骤,包括原料的批次、生长条件、加工参数等,以确保产品质量的可追溯性。

阿拉伯梳子的专栏 1595

Android_Gallery(画廊)

转:http://blog.csdn.net/tianjf0514/article/details/7521398 Gallery是画廊的意思,可以实现图片的浏览功能。 主要内容 Gallery控件的使用 使用Gallery + ImageSwitcher完成图片浏览功能 一、Gallery控件的使用 要把图片显示到Gallery里面,要使用Gallery的...

163

知识检索中的四大评估指标:准确率、精确率、召回率与F1分数详解

摘要:NLP算法面试中,评估知识检索系统的核心指标包括准确率、精确率、召回率和F1分数。准确率衡量整体预测正确性,但在样本不均衡时可能失真;精确率关注预测正类中的真实比例(查准能力),召回率衡量真实正类被预测的比例(查全能力)。F1分数是两者的调和平均,提供综合评估。这些指标通过混淆矩阵计算,并存在制约关系:提高召回率往往降低精确率,反之亦然。应用场景包括文档检索(评估结果质量和覆盖度)和文本分类(如垃圾邮件过滤)。面试需掌握指标区别、适用场景及平衡方法(如调整阈值)。F1分数在样本不平衡时比准确率更具参考

Ven%的博客 1762

【驭风计划 机器学习】实验6 基于集成学习的 Amazon 用户评论质量预测

¶随着电商平台的兴起,以及疫情的持续影响,线上购物在我们的日常生活中扮演着越来越重要的角色。在进行线上商品挑选时,评论往往是我们十分关注的一个方面。然而目前电商网站的评论质量参差不齐,甚至有水军刷好评或者恶意差评的情况出现,严重影响了顾客的购物体验。因此,对于评论质量的预测成为电商平台越来越关注的话题,如果能自动对评论质量进行评估,就能根据预测结果避免展现低质量的评论。本案例中我们将基于集成学习的方法对 Amazon 现实场景中的评论质量进行预测。

Mege1的博客 471

android+gallery+优化,QuickPic Gallery Mod(画廊) v8.4.0 | 优化、修改版[安卓版]

画廊(QuickPic Gallery Mod)(包名:com.alensw.PicFolder)由开发者WSTxda基于快图浏览(QuickPic 4.5.2)源码重编译的维护版。快图,体积小,速度快,颜值高,快图是最理想的相册和图库。远小于同类应用的体积,功能更为强大!快图浏览是安卓平台上性能非常棒的相册及图片浏览软件。轻如鹅毛,快如闪电,简约现代,快图浏览为您挚爱的图片提供了理想的相册。比系...

weixin_39676034的博客 1498

保姆级教程:用ROS2 Humble和Nav2从零搭建一个能自主导航的机器人小车(含SLAM建图与避障)

本文提供了一份详细的保姆级教程,指导如何使用ROS2 Humble和Nav2从零搭建一个具备自主导航功能的机器人小车,包括SLAM建图与避障。教程涵盖了硬件组装、ROS2环境配置、URDF模型创建、SLAM建图实战、Nav2导航栈配置以及系统集成调试等关键步骤,适合机器人开发初学者和进阶开发者。

weixin_30329623的博客 490

Android gallery+BaseAdapter实现简易的图片查看器

布局文件main.xml<?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"

开源大使 751

利用GAT(图论分析工具箱)构建并分析大脑结构协变网络学习笔记

前言 前面我学习了利用DTI构建白质纤维脑网络,并采用GRETNA计算了小世界网络属性。阅读文献发现可以利用灰质体积或皮层指标(皮层厚度、折叠指数、沟深)等构建结构协变网络再进行网络拓扑属性的计算。因此,我采用前面提取的灰质体积和皮质数据进行了结构协变网络分析,特此写下笔记以便后面的学习。 一、数据准备 二、构建结构协变网络 三、全局属性的统计分析 四、局部属性的统计分析 五、网络攻击分析 六、度的分布 ..................

weixin_52073820的博客 7496

【YOLO26保姆级零踩坑教程】环境搭建+五大任务快速入门,一行代码实现检测/分割/姿态/OBB/分类(Win+Linux全适配)

YOLO26环境搭建与实战指南:零踩坑全适配 本文是YOLO26全栈技术专栏的入门篇,提供Windows/Linux双系统的纯实战环境搭建指南,主打零踩坑、全适配。YOLO26基于Ultralytics框架优化,无需编译源码或手动下载权重,原生支持多任务推理。 环境配置关键点: 必须安装Ultralytics 8.4.0及以上版本 支持CPU/GPU环境,推荐Python 3.8-3.11 提供清华源配置解决下载慢问题 安装步骤: CPU版:一键安装Ultralytics和OpenCV GPU版:匹配CUD

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 774

Android中ImageSwitcher结合Gallery展示SD卡中的资源图片

本文主要是写关于ImageSwitcher结合Gallery组件如何展示SDCard中的资源图片,相信大家都看过API Demo 中也有关于这个例子的,但API Demo 中的例子是展示工程中Drawable目录下的资源图片,这样调用系统的API比较容易实现,但我们在开发项目过程中,但有些图片还不能完全确定下来,例如需要展示相机拍照的图片,SDCard中某个目录下的资源图片等功能。其实系统中也提供

startFromWeb的专栏 966

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MonoDroid学习笔记(八)—— 如IPhone拖动相片特效,Gallery画廊

<br />曾经被IPhone用手指在屏幕上滑来滑去拖动图片的操作方式吸引吗?在Android里,这并不是什么难事,只要用到Gallery即可。它通常用在设计相册、图片类型的选择器上。<br />在开始之前,先了解一下什么是Context以及Android.Widget命名空间下的BaseAdapter,在Activity当中,Context就如同是Canvas画布,随时等着被处理或覆盖。还记得先前介绍Activity之间的传递时,做过Intent以及Context的应用吗?当中Intent是Android

ojlovecd的专栏 5477

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

加载SD卡图片到Gallery与ImageSwitch使用详解

由于最近小马要使用下Gallery与ImageSwitch实现照片的预览功能,特此找个时间写了个小DEMO测试了下,完整的哦,直接开始,今天好激动呢,吼吼,先分段讲下,最后贴出源代码,看代码之前先往你的模拟器“/sdcard/”下PUSH几张图片哦,作为工程中使用的图片资源,看代码: packagecom.xiaoma.www; ...

weixin_33753003的博客 327

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【Android 界面效果30】Android中ImageSwitcher结合Gallery展示SD卡中的资源图片

本文主要是写关于ImageSwitcher结合Gallery组件如何展示SDCard中的资源图片,相信大家都看过API Demo 中也有关于这个例子的,但API Demo 中的例子是展示工程中Drawable目录下的资源图片,这样调用系统的API比较容易实现,但我们在开发项目过程中,但有些图片还不能完全确定下来,例如需要展示相机拍照的图片,SDCard中某个目录下的资源图片等功能。其实系统中也提供

Geek马走日 429

Android_(控件)使用Gallery浏览手机上SD卡中图片

运行截图: (发现后面两张照片是自己自拍,大写的尴尬对图片进行涂鸦了!!!) 程序结构: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" ...

weixin_30938149的博客 196
上一篇: android开发之SQLite详解
下一篇: Android多媒体详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值