【Android开发】经典范例1-实现仿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

时间: 2024-10-27 16:52:32

【Android开发】经典范例1-实现仿Windows7图片预览窗格效果的相关文章

【Android开发】范例2-实现幻灯片式图片浏览器

我们来实现一个幻灯片式图片浏览器: 最下面一个画廊视图,选中画廊中的图片,会在上面的ImageSwitcher控件中显示大图. 效果图如图 实现方法: 在布局文件中添加图片切换控件ImageSwitcher和画廊视图控件Gallery res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas

Android中使用TextView实现高仿京东淘宝各种倒计时效果_Android

今天给大家带来的是仅仅使用一个TextView实现一个高仿京东.淘宝.唯品会等各种电商APP的活动倒计时.最近公司一直加班也没来得及时间去整理,今天难得休息想把这个分享给大家,只求共同学习,以及自己后续的复习.为什么会想到使用一个TextView来实现呢?因为最近公司在做一些优化的工作,其中就有一个倒计时样式,原来开发的这个控件的同事使用了多个TextView拼接在一起的,实现的代码冗余比较大,故此项目经理就说:小宏这个就交给你来优化了,并且还要保证有一定的扩展性,当时就懵逼了.不知道从何处开始

Android中使用TextView实现高仿京东淘宝各种倒计时效果

今天给大家带来的是仅仅使用一个TextView实现一个高仿京东.淘宝.唯品会等各种电商APP的活动倒计时.最近公司一直加班也没来得及时间去整理,今天难得休息想把这个分享给大家,只求共同学习,以及自己后续的复习.为什么会想到使用一个TextView来实现呢?因为最近公司在做一些优化的工作,其中就有一个倒计时样式,原来开发的这个控件的同事使用了多个TextView拼接在一起的,实现的代码冗余比较大,故此项目经理就说:小宏这个就交给你来优化了,并且还要保证有一定的扩展性,当时就懵逼了.不知道从何处开始

Android开发中如何解决加载大图片时内存溢出的问题

Android开发中如何解决加载大图片时内存溢出的问题    在Android开发过程中,我们经常会遇到加载的图片过大导致内存溢出的问题,其实类似这样的问题已经屡见不鲜了,下面将一些好的解决方案分享给大家.   尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存. 因此,改用先通过Bitmap

Android开发之自定义view实现通讯录列表A~Z字母提示效果【附demo源码下载】

本文实例讲述了Android开发之自定义view实现通讯录列表A~Z字母提示效果.分享给大家供大家参考,具体如下: 开发工具:eclipse 运行环境:htc G9 android2.3.3 话不多说,先看效果图 其实左右边的A~Z是一个自定义的View,它直接覆盖在ListView上. MyLetterListView: public class MyLetterListView extends View { OnTouchingLetterChangedListener onTouching

Android编程滑动效果之Gallery+GridView实现图片预览功能(附demo源码下载)_Android

本文实例讲述了Android编程滑动效果之Gallery+GridView实现图片预览功能.分享给大家供大家参考,具体如下: Android系统自带一个GridView和Gallery两个控件,GridView网格显示,Gallery单个浏览,两者结合起来可以真正实现Gallery浏览图片效果. 本示例通过GridView和Gallery两个控件,模仿实现一个完整的仿Gallery图像集的图片浏览效果.效果图如下: 1.GridView 首先,自定义一个GridImageAdapter图片适配器

任意调整Windows7任务栏预览窗格大小

这里介绍一下如何调整Windows7任务栏预览窗格大小. 操作步骤如下: 1:打开注册表编辑器: 开始,运行-,输入regedit回车;也可以按win键+R键,输入regedit回车; 2:在左边的目录中找到: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerTaskband 3:右键右侧的空白处,选择新建―DWORD(32位)值,名字为MinThumbSizePx 4:双击刚才新建的MinThumbSizePx键值,

调试-android sudio中,如何在debug的时候预览bitmap对象?

问题描述 android sudio中,如何在debug的时候预览bitmap对象? 5C android sudio中,如何在debug的时候预览bitmap对象? 对bitmap进行操作也行,只要能看见图.我有一次做如片裁剪的时候,误打误撞预览出来了,确实是可以的,后来怎么都不行了,求解. 解决方案 写入文件,在电脑上查看 解决方案二: Android bitmap对象序列化 解决方案三: 图片有问题才能看吧,会不会跳到了一个本地的图片--

急请教web开发中遇到的图片预览问题

问题描述 急请教web开发中遇到的图片预览问题问题:当一个file在网页上选择了本地的一张图片后,要求在网页上浏览一下<inputid="FilePhoto"type="file"runat="server"onpropertychange="GetMyView();"/>这是那个file<inputtype="Image"ID="ImgStudentPhoto"Hei