android studio for android learning (十三) 一个简单的图片查看器示例
1、程序界面很简单,一个按钮和一个ImageView组件,当用户按下按钮时,程序会自动搜寻/assets/目录下的一张图片。
2.在android studio中新建的工程并不存在assets目录,需要自己创建,在main目录下,创建assets目录,并在里面放入图片资源
activity_main.xml布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.dragon.testevent.MainActivity"><Button
android:id="@+id/bn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Next"/><ImageView
android:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>
代码文件
package com.dragon.testevent;import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;import java.io.IOException;
import java.io.InputStream;public class MainActivity extends Activity {String[] images = null;AssetManager assets = null;int currentImg=0;ImageView image;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);image = (ImageView) findViewById(R.id.image);try{
// 获取AssetManager的引用assets = getAssets();//获取/assests/目录下的所有的文件images = assets.list("");}catch(IOException e){
// 在命令行打印异常信息在程序中出错的位置及原因e.printStackTrace();}final Button next = (Button) findViewById(R.id.bn);
// 按钮点击事件next.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View sources){if(currentImg>=images.length){currentImg=0;}
// 寻找图片文件while(!images[currentImg].endsWith(".png")&&!images[currentImg].endsWith(".jpg")&&!images[currentImg].endsWith(".gif")){currentImg++;
// 检查是否发生越界if(currentImg>=images.length){currentImg=0;}}InputStream assetFile = null;try{
// 获取指定文件的输入流assetFile = assets.open(images[currentImg++]);}catch(IOException e){e.printStackTrace();}BitmapDrawable bitmapDrawable =(BitmapDrawable) image.getDrawable();
// 图片是否回收if(bitmapDrawable!=null&&!bitmapDrawable.getBitmap().isRecycled()){
// 强制回收bitmapDrawable.getBitmap().recycle();}
// 用ImageView显示图片image.setImageBitmap(BitmapFactory.decodeStream(assetFile));}});}
}
这样就完成了一个简单的图片查看器的工作。
android studio for android learning (十三) 一个简单的图片查看器示例相关推荐
- 【QT学习】制作一个简单的图片查看器(完整源码)
- iOS开发-简单的图片查看器
现在你只要拿着手机,不管你Android还是iOS,新闻类的App不可避免都有一个功能就是图片查看,做个专题,查看一下内容,App Store中也有专门针对图片浏览的App,鉴于目前所知有限,无法做到 ...
- JavaSwing图片绘制,实现简单的图片查看器
刚学到JavaSwing图片绘制,于是自己做了个简易的图片查看器小程序,在这里分享给大家,请多多指教. 话不多说先上部分图: 绘制图片需要自定义一个控件,我们这里写一个继承自JPanel的类,重写pa ...
- 制作一个简单的照片查看器(支持缩放手势)
本文主要实现的功能是制作一个照片查看器,点击照片能进入大图模式,支持左右滑动,支持手势缩放, 本文只演示1张图和3张图的效果,其他的效果分为为: 2张图的时候按照1行2列展示, 3张图的时候按照1行3 ...
- csv文件示例_自己动手? -一个简单的CSV解析器示例
csv文件示例 Download source code - 2.7 MB 下载源代码2.7 MB 目录 (Table of Contents) Introduction 介绍 The Dataset ...
- android 图片查看源码,Android 简单的图片查看器源码
public class MainActivity extends Activity { private EditText et_path; private ImageView iv; //创建han ...
- android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单
怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...
- Android studio编译跑步运动app一个安卓的跑步软件实时记录速度,画出跑步路径, 管理跑步数据履历,查看数据详细等
Android studio编译跑步运动app一个安卓的跑步软件实时记录速度,画出跑步路径, 管理跑步数据履历,查看数据详细等 效果图: 效果视频: 安卓运动跑步APP android studio编 ...
- Android开发做一个简单的音乐播放器
Android开发如何做一个简单的音乐播放器,首先我们先要知道用到的知识点有哪些. 1.MediaPlayer:可以播放本地资源.sd卡内存资源以及网络uri资源,在这里我们播放sd卡上的音乐资源. ...
- android仿空间照片查看器,PhotoViewer 一个简单仿微信朋友圈的图片查看器
该图片查看器是模仿微信朋友圈查看图片编写 allprojects { repositories { ... maven { url 'https://jitpack.io' } } } lastRel ...
最新文章
- python测试开发自学教程-测试开发学习路线图
- Zookeeper,etcd,consul内部机制和分布式锁和选主实现的比较
- Codeforces Round #516 (Div. 1) 题解
- LINUX内核杂记(1)-处理器与单内核
- linux文件属性和类型
- 扫雷游戏网页版_做游戏,单人行动可行吗(3.让我试试扫雷)
- c语言中的switch语句中的break和continue的作用
- Exception in thread main java.lang.NoClassDefFoundError
- python中递归函数写法_《Python入门08》你知道Python递归函数怎么写吗~~
- opencv python安装_Python 安装 第三方库的安装技巧
- 课后习题讲解(免费)高数下册
- 删除非系统盘的msdia80.dll文件以及出现的dllregisterserver调用失败错误代码0x80004005问题
- SQL语句实现增删改查(1)
- 《论持久战》的主要原则
- vlookup使用步骤_vlookup函数的使用方法
- python做t检验_Python实现--假设检验:T检验
- 打印表格打印机没有反应_windows10下office2016文档和表格 hp打印机 按打印没反应解决办法...
- ArcGIS制作栅格动图
- 小学生Python编程 ----- 打鸭子
- 做好OKR目标管理,迈出高效协作的第一步