android 图片预览动画,Android实现仿Windows7图片预览窗格效果

本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果。

效果如图所示:

891c51432d8c1d89c2c749ba60b78daf.png

具体实现方法:

res/layout/main.xml:

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:id="@+id/layout1"

>

android:layout_height="match_parent"

android:layout_width="440px"

android:layout_marginTop="10px"

android:horizontalSpacing="3px"

android:verticalSpacing="3px"

android:numColumns="3"/>

android:id="@+id/imageSwitcher1"

android:padding="10px"

android:layout_width="match_parent"

android:layout_height="match_parent"/>

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://www.mzph.cn/news/498817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

得到品控手册_得到品控手册 一本令人惊喜的说明书

2020 / 08 / 26 星期三文 | 非一工厂里生产螺丝,零件,都有模子,每个一模一样,非常标准。写文章、培训、制作课程,炒菜,这些带有主观性,创造性的事,感觉很难标准化,不容…

android发送点击事件,Android 模拟发送事件

所有的事件一览图片.png一、TrackBall 事件定义:等同于连续点击左右按键。格式: roll (Default : trackball)参数: dx 为横向移动偏移量,dy 为纵向的。使用实例:向下滚动一项 input roll 0 1 input trackball 0 1图片…

c调python_应该是史上最全的python调用C接口

在这段时间里,我需要使用python调用C接口。我在网上搜索了很多,再加上python的官方文件,并组织备份1。从ctypes加载dll导入* dll () # func1dll CDLL () # func2print (dll) 2。type3的数据通信。函数调用CDLL1_API int fnDLL1 (void){返回42;}Pythonprint (()) 4。参数传递C…

android 电池电量显示不正常,vivo电量显示不正常怎么解决?vivo手机电量校准教程...

vivo手机用了一段时间会发现,手机电量显示会出现不准确的情况,明明刚充满电不到10分钟,仅剩50%电量;或者充电一晚上,电量仍然显示为70%,无法充满。小伙伴们稍安勿躁,这并不是电池本身出了问题&a…

蒙特卡洛方法_【每日一题56】蒙特卡洛方法 用试验所得的频率估计事件发生概率...

关注“中考数学当百荟”,感谢您的支持!点击“了解更多”56.将两个圆形纸片(半径都为1)如图重叠水平放置(两圆相互过对方的圆心),向该区域随机投掷骰子,求骰子落在重叠区域(阴影部分)的概率.关注“中考数学当百荟”&…

android scrollview居中,使用 HorizontalScrollView 实现滚动控制

功能要求是屏幕上固定显示 3 个 Layout 项(图片文字),支持点击切换到选择的 Layout 项,并支持滑动切换到最近的 Layout 项。最后的效果如下:下面逐步上代码:布局文件 activity_main.xml 如下:xmlns:tools"http://…

python数学计算模块_Python-NumPy模块数学和统计方法(4)

1.前言使用一组数学函数对numpy数组进行操作的时候,有两种方式计算:对整个数组进行计算;对源数组的某个轴向的数据进行统计计算;2.下面是基本的数组统计方法数组统计方法3.统计函数的分类下面的所有统计方法,即可以当做…

系统鸿蒙生态链,任正非透露鸿蒙系统细节,比安卓速度快60%,两三年建好生态链...

原标题:任正非透露鸿蒙系统细节,比安卓速度快60%,两三年建好生态链华为鸿蒙系统自被曝光以来,就引起全球媒体极大关注。关于鸿蒙系统的相关细节,目前大多只限于猜测和知情人士透露的些许信息。不过,近期华为…

数值传热学陶文铨pdf_西安交大陶文铨当选“2019最美科技工作者”

未来网高校频道8月12日讯(记者 杨子健 通讯员 张玥)近日,由中央宣传部、中国科学技术协会、中华人民共和国科学技术部、中国科学院、中国工程院、国家国防科技工业局联合开展“最美科技工作者”学习宣传活动,共遴选出10位2019年“最美科技工作者”。据了…

android studio查看手机文件,在Android Studio中查看数据库文件的内容

通过ADB Shell连接到Sqlite3我没有找到任何办法在Android Studio中,但我访问数据库与远程shell,而不是每次拉文件。1-在命令提示符下转到您的platform-tools文件夹2-输入命令adb devices以获取设备列表C:\Android\adt-bundle-windows-x86_64\sdk\platfor…

python hook_python_理解篇_钩子方法的理解

大家好,我是金鱼座,一个走在测试领域这片蓝海中, 蹉跎前行的技术渣渣,唯有一直走下去,也许能改变点什么,加油!钩子方法,是一个比较奇怪的东西, 他实际上不做任何业务操作…

android layoutparams,Android LayoutParams用法解析

ViewGroup.LayoutParams介绍LayoutParams携带了子控件针对父控件的信息,告诉父控件如何放置自己LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:1,一个确定的值;2,FILL_PARENT&#xff0c…

python 文本文件处理_53 Python - txt普通文件处理

今天讲的内容是关于数据文件的读写,我们都知道如果是普通的文本文件就比较简单,我们可以使用自带的open 方法打开我们的文件,可以使用read 和write进行读写回顾,我们把不同文件的操作放到不同文件里面新建一个目录txt,…

android静态类保存context,Android:静态获取Context是一个好习惯吗?

public class MyApp extends Application {private static Context context;public void onCreate(){super.onCreate();MyApp.context getApplicationContext();}public static Context getContext() {return MyApp.context;}}我使用它来在既不是活动也不是片段的类中使用Cont…

c# 计算空格宽度像素_C# WinForm,Graphics.MeasureString 计算不准确的坑

Graphics.MeasureString 可以计算出指定字符串在给定字体Font的尺寸SizeF,它的计算有坑:如果把字符串拆开成一个一个单字字符串并逐个计算尺寸,然后把Width加起来,你会发现并不一定等于完整的字符串计算出来的Width。经过一番折腾…

鸿蒙os 芯片制程,华为Mate50将如期发布,屏下镜头+鸿蒙OS,再见iPhone12

华为旗下有两个高端产品线,一个是mate一个就是P系列,这两款产品发布会一般相隔半年左右,按理说华为P50也该上日程了,可因为芯片缺货问题耽搁了,预计将会在7月份发布。安按照华为往常的新机发布节奏去看,华为…

nstimer循环引用_警惕使用NSTimer时的循环引用

使用NSTimer可能会碰到循环引用的问题。特别是当类具有NSTimer类型的成员变量,并且需要反复执行计时任务时。例如_timer [NSTimer scheduledTimerWithTimeInterval:5.0target:selfselector:selector(startCounting) userInfo:nilrepeats:YES];类有一个成员变量_tim…

html中写色块,CSS3 彩虹色块

CSS语言:CSSSCSS确定html,body {min-height: 100%;}body {background-image: url(data:image/svgxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIPGRlZnMPHJhZGlhbEdyYW…

奎享添加自己字体_奎享雕刻软件写字操作简要说明

关于奎享雕刻软件单线字书写操作步骤的简要说明特别提醒!设备完全调试好以后再练习写字,调试好的标志是用微雕管家刀路雕刻界面能顺利画出一张........&#…

mysql load data infile 导入数据 某一列 空_Sql数据挑战赛amp;网络销售案例分析

SQL挑战赛第一期:1: 编写一个查询&#xff0c;列出员工姓名列表&#xff0c;员工每月工资超过2000美元且员工工作时间少于10个月。通过提升employee_id对结果进行排序select name from employee where salary > 2000 and months < 10 order by employee_id;2: 查询 Emplo…