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 (十三) 一个简单的图片查看器示例相关推荐

  1. 【QT学习】制作一个简单的图片查看器(完整源码)

  2. iOS开发-简单的图片查看器

    现在你只要拿着手机,不管你Android还是iOS,新闻类的App不可避免都有一个功能就是图片查看,做个专题,查看一下内容,App Store中也有专门针对图片浏览的App,鉴于目前所知有限,无法做到 ...

  3. JavaSwing图片绘制,实现简单的图片查看器

    刚学到JavaSwing图片绘制,于是自己做了个简易的图片查看器小程序,在这里分享给大家,请多多指教. 话不多说先上部分图: 绘制图片需要自定义一个控件,我们这里写一个继承自JPanel的类,重写pa ...

  4. 制作一个简单的照片查看器(支持缩放手势)

    本文主要实现的功能是制作一个照片查看器,点击照片能进入大图模式,支持左右滑动,支持手势缩放, 本文只演示1张图和3张图的效果,其他的效果分为为: 2张图的时候按照1行2列展示, 3张图的时候按照1行3 ...

  5. csv文件示例_自己动手? -一个简单的CSV解析器示例

    csv文件示例 Download source code - 2.7 MB 下载源代码2.7 MB 目录 (Table of Contents) Introduction 介绍 The Dataset ...

  6. android 图片查看源码,Android 简单的图片查看器源码

    public class MainActivity extends Activity { private EditText et_path; private ImageView iv; //创建han ...

  7. android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单

    怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...

  8. Android studio编译跑步运动app一个安卓的跑步软件实时记录速度,画出跑步路径, 管理跑步数据履历,查看数据详细等

    Android studio编译跑步运动app一个安卓的跑步软件实时记录速度,画出跑步路径, 管理跑步数据履历,查看数据详细等 效果图: 效果视频: 安卓运动跑步APP android studio编 ...

  9. Android开发做一个简单的音乐播放器

    Android开发如何做一个简单的音乐播放器,首先我们先要知道用到的知识点有哪些. 1.MediaPlayer:可以播放本地资源.sd卡内存资源以及网络uri资源,在这里我们播放sd卡上的音乐资源. ...

  10. android仿空间照片查看器,PhotoViewer 一个简单仿微信朋友圈的图片查看器

    该图片查看器是模仿微信朋友圈查看图片编写 allprojects { repositories { ... maven { url 'https://jitpack.io' } } } lastRel ...

最新文章

  1. python测试开发自学教程-测试开发学习路线图
  2. Zookeeper,etcd,consul内部机制和分布式锁和选主实现的比较
  3. Codeforces Round #516 (Div. 1) 题解
  4. LINUX内核杂记(1)-处理器与单内核
  5. linux文件属性和类型
  6. 扫雷游戏网页版_做游戏,单人行动可行吗(3.让我试试扫雷)
  7. c语言中的switch语句中的break和continue的作用
  8. Exception in thread main java.lang.NoClassDefFoundError
  9. python中递归函数写法_《Python入门08》你知道Python递归函数怎么写吗~~
  10. opencv python安装_Python 安装 第三方库的安装技巧
  11. 课后习题讲解(免费)高数下册
  12. 删除非系统盘的msdia80.dll文件以及出现的dllregisterserver调用失败错误代码0x80004005问题
  13. SQL语句实现增删改查(1)
  14. 《论持久战》的主要原则
  15. vlookup使用步骤_vlookup函数的使用方法
  16. python做t检验_Python实现--假设检验:T检验
  17. 打印表格打印机没有反应_windows10下office2016文档和表格 hp打印机 按打印没反应解决办法...
  18. ArcGIS制作栅格动图
  19. 小学生Python编程 ----- 打鸭子
  20. 做好OKR目标管理,迈出高效协作的第一步

热门文章

  1. android之自定义弹框
  2. android 技术点记录
  3. RCP之病人信息系统开发总结(4):MVC模式之View层—透视图
  4. 查找算法——二分查找
  5. wordpress如何获得当前用户的头像
  6. matlab gui怎样将结果保存在excel中_声发射简单使用matlab导入参数波形数据并绘图...
  7. python修改文件名_【Python沙龙】批量修改文件名称
  8. python(九):函数、匿名函数 lambda
  9. MySQL中授权(grant)和撤销授权(revoke)
  10. 布线问题 nyoj38