使用Gallery制作图片浏览器
MainActivity.class
- public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener,ViewSwitcher.ViewFactory {
- private Gallery gallery;
- private ImageSwitcher imageSwitcher;
- //数据源
- private int[] res = {R.drawable.item1,R.drawable.item2,R.drawable.item3,R.drawable.item4,
- R.drawable.item5,R.drawable.item6, R.drawable.item7,R.drawable.item8,
- R.drawable.item9,R.drawable.item10,R.drawable.item11,R.drawable.item12};
- private ImageAdapter adapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- gallery = (Gallery) findViewById(R.id.gallery);
- imageSwitcher = (ImageSwitcher) findViewById(R.id.imageswitch);
- adapter = new ImageAdapter(res,this);
- gallery.setAdapter(adapter);
- gallery.setOnItemSelectedListener(this);
- //imageSwitcher加载工厂factory
- imageSwitcher.setFactory(this);
- imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
- imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out));
- }
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- imageSwitcher.setBackgroundResource(res[position % res.length]);
- }
- @Override
- public View makeView() {
- ImageView image = new ImageView(this);
- //等比例 居中缩放
- image.setScaleType(ImageView.ScaleType.CENTER.FIT_CENTER);
- return image;
- }
ImageAdapter类 自己写的Adapter 继承于BaseAdapter
- ImageAdapter.class
- public class ImageAdapter extends BaseAdapter {
- private int[] res;
- private Context context;
- public ImageAdapter(int[] res,Context context){
- this.res = res;
- this.context = context;
- }
- //获取数量
- @Override
- public int getCount() {
- return res.length;
- // return Integer.MAX_VALUE; 约等于无限数量
- }
- //获取项目
- @Override
- public Object getItem(int position) {
- return res[position];
- }
- //获取在适配器中的位置
- @Override
- public long getItemId(int position) {
- return position;
- }
- //获取单个的View
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- //new出一个新的View
- ImageView image = new ImageView(context);
- //给ImageView加载对应的图像资源
- image.setBackgroundResource(res[position]);
- //利用取余 无限图片位置 不受数目限制了 res[position % res.length]
- //设置view在Gallery中缩略图的大小
- image.setLayoutParams(new Gallery.LayoutParams(200,150));
- //设置缩放模式
- image.setScaleType(ImageView.ScaleType.FIT_XY);
- return image;
- }
- }
Activity.xml
- <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"
- tools:context=".MainActivity">
- <Gallery
- android:id="@+id/gallery"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
- <ImageSwitcher
- android:layout_gravity="center_vertical"
- android:layout_below="@id/gallery"
- android:id="@+id/imageswitch"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
- </ImageSwitcher>
- </LinearLayout>
使用Gallery制作图片浏览器的更多相关文章
- ImageView加ImageSwitch制作图片浏览器
Main /** 图片浏览器*/public class MainActivity extends Activity implements ViewFactory{private Gallery ga ...
- android:使用gallery和imageSwitch制作可左右循环滑动的图片浏览器
为了使图片浏览器左右无限循环滑动 我们要自己定义gallery的adapter 假设要想自己定义adapter首先要了解这几个方法 @Override public int getCount() { ...
- Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式
Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...
- winform利用ImageList控件和ListView控件组合制作图片文件浏览器
winform利用ImageList控件和ListView控件组合制作图片文件浏览器,见图,比较简单,实现LISTVIEW显示文件夹图片功能. 1.选择文件夹功能代码: folderBrowserDi ...
- 制作一个简单的WPF图片浏览器
原文:制作一个简单的WPF图片浏览器 注:本例选自MSDN样例,并略有改动.先看效果: 这里实现了以下几个功能:1. 对指定文件夹下所有JPG文件进行预览2. 对选定图片进行旋转3. 对选定图片 ...
- Android中轴旋转特效实现,制作别样的图片浏览器
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/10766017 Android API Demos中有很多非常Nice的例子,这些例 ...
- 一步一步打造自己的Android图片浏览器(原创)
今天我们试着来制作一个自己的Android图片浏览器. 图片浏览器应该具有什么功能呢?鉴于不同的人不同的理解,这里提出一个基本的需求: 搜索手机内的所有图片,展示于一个列表中: 列表中展示的是图片的缩 ...
- Android 高级UI设计笔记15:HorizontalScrollView之 实现画廊式图片浏览器
1. HorizontalScrollView 本来,画廊式的图片浏览器,使用Android中的Gallery就能轻松完成,但是Google说Gallery每次切换图片时都要新建视图,造成太多的资源浪 ...
- Swift - 使用UIWebView和UIToolbar制作一个浏览器
使用网页控件(UIWebView)与工具栏控件(UIToolbar),我们可以自制一个小型的浏览器,其功能如下: 1,输入网址,点击“Go”按钮加载网页 2,加载过程中有进度条,同时可以点击停止按钮取 ...
随机推荐
- CentOS里查看内存的使用
转自 http://blog.csdn.net/blueman2012/article/details/6904597
- lumen怎么得到当前Uri的控制器、Action、路由规则
<?php namespace App\Http\Controllers; class HelloController extends Controller { public function ...
- 使用rabbit mq.模拟dubbo,使MQ异步调用代码写起来像是同步方法.
最近在改造老系统,遇到了需要使用rabbitMq的场景.在以前使用的过程中需要在发送端和消费端各种配置,感觉比较麻烦,然后突然想到了dubbo中@Reference注解的形式,可不可以做一个类似的架子 ...
- DRF之APIView源码解析
目录 Django项目中的代码如下 APIView源码解析 源码解析总结 Django项目中的代码如下 urls.py中: from django.conf.urls import url from ...
- Golang的goroutine协程和channel通道
一:简介 因为并发程序要考虑很多的细节,以保证对共享变量的正确访问,使得并发编程在很多情况下变得很复杂.但是Go语言在开发并发时,是比较简洁的.它通过channel来传递数据.数据竞争这个问题在gol ...
- 前端面试经典题之apply与call的比较
在讲apply和call之前,我们需要先清楚在js中,this指向的是什么. 大家可以参考一下阮一峰老师写的关于JavaScript中this的原理讲解文章:http://www.ruanyifeng ...
- Pulse Secure 任意文件读取(CVE-2019-11510)漏洞
漏洞分析 我们可以通过CVE-2019-11510这个未授权的任意文件读取漏洞把以下文件下载回来. /etc/passwd /etc/hosts /data/runtime/mtmp/system / ...
- jQuery 虚拟数字键盘代码
先上效果: js直接应用: $('input').mynumkb(); 就出来效果 HTML: <input maxlength="4" type="tex ...
- English 邮件
1.email http://www2.elc.polyu.edu.hk/cill/eiw/e-mail.htm
- Linux三剑客之grep常用参数详细总结
三剑客grep总结 grep : Linux三剑客老三 过滤需要的内容 参数: grep一般常用参数: -a :在二进制文件中,以文本文件的方式搜索数据 -c :计算找到 ’ 搜索字符串 ...