本例程的实现界面如下:

界面所用到的组件是ImageView,不熟悉的属性是android:scaleType="centerCrop",它的值有很多:

center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示

 fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置

 fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置

 fitXY  把图片不按比例扩大/缩小到View的大小显示

matrix 用矩阵来绘制,动态缩小放大图片来显示。

为了实现不同状态下按钮的背景图片,用<selector>标签实现,具体如下:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!-- 按钮按下时 ,ImageButton上显示的图片--><item android:state_pressed="true" android:drawable="@drawable/preb"/><!-- 正常情况下,ImageButton上显示的图片 --><item android:state_pressed="false" android:drawable="@drawable/preg"/>
</selector>

界面的布局文件是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/showView"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello_world"/><ImageView android:id="@+id/imageView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:scaleType="centerCrop"android:src="@drawable/pic1"/><LinearLayoutandroid:id="@+id/linear1" android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="25dip"android:orientation="horizontal">   <ImageButton android:id="@+id/preBut"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="30dip"android:src="@drawable/selectora"/> <ImageButton android:id="@+id/nextBut"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="100dip"android:src="@drawable/selectorb"/> </LinearLayout>
</LinearLayout>

MainActivity中的代码如下,用单独定义的类实现OnClickListener()的接口:

package com.toby.chap3_3_1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;public class MainActivity extends Activity {private ImageButton preBtn,nextBtn;private ImageView imageView;private int currentImgId=0;//记录当前ImageView中显示图片的IDint imgID[]={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3};//存储ImageView显示的图片的ID@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);imageView=(ImageView)findViewById(R.id.imageView);preBtn=(ImageButton)findViewById(R.id.preBut);nextBtn=(ImageButton)findViewById(R.id.nextBut);preBtn.setOnClickListener(new ButtonListener());nextBtn.setOnClickListener(new ButtonListener());}class ButtonListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(v==preBtn){//如果按的是上一张按钮currentImgId=(currentImgId-1+imgID.length)%imgID.length;//计算机图片的在数组中的下标imageView.setImageResource(imgID[currentImgId]);//设置ImageView显示的图片}if(v==nextBtn){//如果按的是下一张按钮currentImgId=(currentImgId+1)%imgID.length;//计算机图片的在数组中的下标imageView.setImageResource(imgID[currentImgId]);//设置ImageView显示的图片}}}
}

简单图片浏览器的实现相关推荐

  1. 安卓学习第14课——GridView(简单图片浏览器1)

    今天学习的是GridView组件,利用的部分只是还是Adapter.imageView的知识,制作了简单图片浏览器 <LinearLayout xmlns:android="http: ...

  2. 【Android】简单图片浏览器

    开始重新学习Android,还是依照<疯狂Android讲义>. 简单图片浏览器: 功能:图片浏览器,点击图片可以切换. 注意:在res/drawable中添加p1.jpg.p2.jpg. ...

  3. Android小程序(3)--简单图片浏览器

    简单图片浏览器 此使用的知识点是XML布局文件与Java代码的混合来控制UI界面. 首先在布局文件中定义简单的线性布局容器: <?xml version="1.0" enco ...

  4. C# 系统应用之ListView实现简单图片浏览器

    最近有同学问我如何使用ListView加载图片列表,前面在"C#系统应用"中TreeView+ListView+ContextMenuStrip控件实现树状图显示磁盘目录,并在Li ...

  5. java 简单图片浏览器_Java实现简单的图片浏览器

    第一次写博客,不喜勿喷. 最近一个小师弟问我怎么用Java做图片浏览器,感觉好久没玩Java了,就自己动手做了一下. 学校的教程是用Swing来做界面的,所以这里也用这个来讲. 首先要做个大概的界面出 ...

  6. html5照片浏览,实践html5实例–简单图片浏览器

    使用canvas来进行绘画,它像很多其他dom对象一样,有很多属性和方法,操作这些方法,实现绘画 获取canvas对象,调用document.getElementById()方法 调用canvas对象 ...

  7. UI基础篇-iOS中简单图片浏览器的实现

    1 // 2 3 // HYViewController.m 4 5 // 01-图片浏览器复习 6 7 // 8 9 // Created by apple on 15-4-10. 10 11 // ...

  8. WPF简单图片浏览器

    用ListBox和Border控件实现WPF简单的图片浏览. 1.MainWindow.xaml代码如下: <Windowxmlns="http://schemas.microsoft ...

  9. Android 简单图片浏览器

    最后成果图: 第一步:编辑XML布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

最新文章

  1. mysql 错误 0152_SP2-1503 SP2-0152 错误解决
  2. 13、mysql中视图的应用
  3. 剑指offer 15.二进制中1的个数
  4. 蓄电池单格电压多少伏_12v电瓶充满电多少伏正常
  5. JS的 setTimeout 和 bind 使用 、复选框限制选定数据jq
  6. maple软件安装教程
  7. 传感器学习——ESP8266(无线串口使用)
  8. 踩坑记录:关于低版本firefox43.0.1在控件中定义onclick=remove(),点击按钮,按钮会消失。
  9. git--工作区、暂存区、本地仓库、远程仓库
  10. NameError: name ‘_name_‘ is not define!解决方法
  11. Unexpected Exception caught setting '' on 'class com.: Error setting expression '' with value ['', ]
  12. html 单元格被撑开_tabletd宽度被撑开的问题。棘手~_html/css_WEB-ITnose
  13. 软件测试——Docker基本命令汇总
  14. Android穿山甲SDK接入信息流广告
  15. 黑苹果(i7-4790,华硕B85-plus主板)的过程
  16. Android网易新闻评论盖楼效果的实现
  17. stata行业变量怎么赋值_PEP572:赋值表达式(海象符)
  18. Deep dream——《Going Deeper into Neural Networks》
  19. MRPII/ERP实施和应用十大忠告(转载)
  20. 1024程序员节,17城公益骑行,传智播客邀你益骑燃!

热门文章

  1. 脚本大全_抖音文案大全2020励志:抖音最火励志搞笑句子,直接套用上热门
  2. cheked复选框返回值的时候选中
  3. Exchange日常管理之二十二:配置保留策略
  4. Solr配置与简单Demo[转]
  5. TCP协议三次握手过程分析
  6. 经常用到的JS 表单验证函数
  7. Myeclipse中遇到Unauthorized
  8. 删除数据 DataIntegrityViolationException: not-null property references a null or transient value解决...
  9. WCF之元数据交换 (Metadata Exchange)
  10. django里static配置静态文件的引入