Android实现仿Windows7图片预览窗格效果
作者:光仔December 发布时间:2022-10-14 01:48:04
标签:Android,Windows7,预览,窗格
本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果。
效果如图所示:
具体实现方法:
res/layout/main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layout1"
>
<GridView android:id="@+id/gridView1"
android:layout_height="match_parent"
android:layout_width="440px"
android:layout_marginTop="10px"
android:horizontalSpacing="3px"
android:verticalSpacing="3px"
android:numColumns="3"/>
<!-- 添加一个图像切换器 -->
<ImageSwitcher
android:id="@+id/imageSwitcher1"
android:padding="10px"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
MainActivity:
package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;
public class MainActivity extends Activity {
private int[] imageId=new int []{R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,
R.drawable.img5,R.drawable.img6,R.drawable.img7,R.drawable.img8,R.drawable.img9};
private ImageSwitcher imageSwitcher;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageSwitcher=(ImageSwitcher)findViewById(R.id.imageSwitcher1);//获取图像切换器
//设置动画效果
imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));//设置淡入动画
imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));//设置淡出动画
imageSwitcher.setFactory(new ViewFactory() {
@Override
public View makeView() {
//实例化一个ImageView对象
ImageView imageView=new ImageView(MainActivity.this);
//设置保持纵横比居中缩放图像
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
return imageView;//返回imageView对象
}
});
imageSwitcher.setImageResource(R.drawable.img3);//设置默认显示的图像
GridView gridview=(GridView)findViewById(R.id.gridView1);
BaseAdapter adapter=new BaseAdapter(){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;//声明一个ImageView对象
if(convertView==null){
imageView=new ImageView(MainActivity.this);//实例化ImageView对象
/****************设置图像的宽度和高度*******************/
imageView.setAdjustViewBounds(true);
imageView.setMaxWidth(150);
imageView.setMaxHeight(113);
/*********************************************************/
imageView.setPadding(5, 5, 5, 5);
}else{
imageView=(ImageView)convertView;
}
imageView.setImageResource(imageId[position]);
return imageView;
}
//功能:获得当前选项的id
@Override
public long getItemId(int position) {
return position;
}
//功能:获得当前选项
@Override
public Object getItem(int position) {
return position;
}
//获得数量
@Override
public int getCount() {
return imageId.length;
}
};
gridview.setAdapter(adapter);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
//显示选中的照片
imageSwitcher.setImageResource(imageId[position]);
}
});
}
}
运行效果与开头描述相同,成功实现。
来源:http://blog.csdn.net/acmman/article/details/45041127


猜你喜欢
- 微信公众号开发之回复图文消息,供大家参考,具体内容如下图文消息的主要参数说明通过微信官方的消息接口指南,可以看到对图文消息的参数介绍,如下图
- Java当中的类和对象1. 类和对象的初步认知java 是一门面向对象的语言,所谓面向对象有别于面向过程,面向对象是只需对象之间的交互即可完
- 操作流程假设你已经有自己的域名,因为微信公众号和微信回调都需要域名先看看官方给的文档根据官方文档,主要流程如下:(1)引导用户进入授权页面同
- 原文地址:http://www.javayihao.top/detail/84一:概述由于springboot项目,不管是java工程还是w
- 一、创建项目创建一个简单的Java项目,其中Main.java为主函数,包含main方法:二、完成JAR配置进入File->Proje
- 本文实例讲述了Java基于socket实现的客户端和服务端通信功能。分享给大家供大家参考,具体如下:以下代码参考马士兵的聊天项目,先运行Ch
- Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建
- 自从接触javascript以来,对this参数的理解一直是模棱两可。虽有过深入去理解,但却也总感觉是那种浮于表面,没有完全理清头绪。但对于
- jsoup是一个非常好用的html解析工具。使用时需要下载相应的jar包。下面就是我使用jsoup解析html的表格的java源
- 本文通过实例详细阐述了C++关于智能指针的概念及用法,有助于读者加深对智能指针的理解。详情如下:一、简介由于 C++ 语言没有自动内存回收机
- Spring中有很多继承于aware中的接口,这些接口到底是做什么用到的。aware,翻译过来是知道的,已感知的,意识到的,所以这些接口从字
- 一、什么是内存泄露?Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状
- 前言今天介绍的是关于Spring的数据库连接以及Jdbc模板的相关API方法,虽然在学习了hibernate之后,会知道实现数据库连接一般都
- 原文是 java ,现在将它翻译成 C# ,并对代码重新编排整理,博主是一个今年刚出来的应届毕业生,不足之处请多多包涵。根据银行卡号判断所属
- 引言float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近
- 本文为大家介绍了java.util.ArrayDeque类使用方法,供大家参考,具体内容如下1. ArrayDeque有两个类属性,head
- 题目:Binary Tree Maximum Path SumGiven a binary tree, find the maximum p
- 本文实例讲述了Android开发实现横向列表GridView横向滚动的方法。分享给大家供大家参考,具体如下:Android 横向列表实现,可
- C# 的类型转换有显式转型 和 隐式转型 两种方式。显式转型:有可能引发异常、精确度丢失及其他问题的转换方式。需要使用手段进行转换操作。隐式
- 前言早在2011年它作为安卓兼容库发布,在75%的应用中使用过,是最广泛使用的安卓库。它事实上不是一个单一的文件,而是一个集合,其中可以大致