博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 用ImageSwitcher+Gallery实现图片浏览效果 分类: ...
阅读量:4624 次
发布时间:2019-06-09

本文共 3562 字,大约阅读时间需要 11 分钟。

前言

  本章内容是android.widget.ImageSwitcher,翻译来自"wallace2010",欢迎大家访问他的博客:,再次感谢"wallace2010" !欢迎你一起参与Android API 的中文翻译,联系我over140@gmail.com。

声明

  欢迎转载,但请保留文章原始出处:)

    移动MM博客:http://dev.10086.cn/blog/?55151

    Android中文翻译组:

 

 

 

正文

  一、结构

    public class ImageSwitcher extends ViewSwitcher

    java.lang.Object

      
        android.view.ViewGroup
           android.widget.FrameLayout
             android.widget.ViewAnimator
               android.widget.ViewSwitcher
                 android.widget.ImageSwitcher

  二、概述

    

效果图

 

让我们先来看看XML文件

 

xml文件

xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width
="match_parent" 
android:layout_height
="match_parent"> 
<ImageSwitcher android:id="@+id/switcher"
android:layout_width
="match_parent"
android:layout_height
="match_parent"
android:layout_alignParentTop
="true"
android:layout_alignParentLeft
="true"
/>
<Gallery android:id="@+id/gallery"
android:background
="#55000000"
android:layout_width
="match_parent"
android:layout_height
="60dp"
android:layout_alignParentBottom
="true"
android:layout_alignParentLeft
="true"
android:gravity
="center_vertical"
android:spacing
="16dp"
/>
RelativeLayout>
< /div>

 

 

看到了吧, 主界面采用了相对布局, 用了ImageSwitcher 和 Gallery 两种UI组件.

再来看看JAVA代码吧
 
三、公共方法

public void setImageDrawable (Drawable drawable)

绘制图片

 

 public void setImageResource (int resid)

设置图片资源库

 

 public void setImageURI (Uri uri)

设置图片地址

  四、补充

    4.1  文章链接

    4.2  示例代码本文代码转载自

      java文件

public 
class 
mainactivity 
extends 
Activity 
implements
OnItemSelectedListener, ViewFactory {
private 
ImageSwitcher is;
private 
Gallery gallery;
private 
Integer[] mThumbIds 
= 
{ R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.f, R.drawable.g,
};
private 
Integer[] mImageIds 
= 
{ R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.f, R.drawable.g, };
@Override
protected 
void 
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
is
 
= 
(ImageSwitcher) findViewById(R.id.switcher);
is.setFactory(
this
);
is.setInAnimation(AnimationUtils.loadAnimation(
this
,
android.R.anim.fade_in));
is.setOutAnimation(AnimationUtils.loadAnimation(
this
,
android.R.anim.fade_out));
gallery
 
= 
(Gallery) findViewById(R.id.gallery);
gallery.setAdapter(
new 
ImageAdapter(
this
));
gallery.setOnItemSelectedListener(
this
);
}
@Override
public 
View makeView() {
ImageView i
 
= 
new 
ImageView(
this
);
i.setBackgroundColor(
0xFF000000
);
i.setScaleType(ImageView.ScaleType.FIT_CENTER);
i.setLayoutParams(
new 
ImageSwitcher.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
return 
i;
}
public 
class 
ImageAdapter 
extends 
BaseAdapter {
public 
ImageAdapter(Context c) {
mContext
 
= 
c;
}
public 
int 
getCount() {
return 
mThumbIds.length;
}
public 
Object getItem(
int 
position) {
return 
position;
}
public 
long 
getItemId(
int 
position) {
return 
position;
}
public 
View getView(
int 
position, View convertView, ViewGroup parent) {
ImageView i
 
= 
new 
ImageView(mContext);
i.setImageResource(mThumbIds[position]);
i.setAdjustViewBounds(
true
);
i.setLayoutParams(
new 
Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
i.setBackgroundResource(R.drawable.e);
return 
i;
}
private 
Context mContext;
}
@Override
public 
void 
onItemSelected(AdapterView 
parent, View view, 
int 
position,
long 
id) {
is.setImageResource(mImageIds[position]);
}
@Override
public 
void 
onNothingSelected(AdapterView 
parent) {
}
}

这样一来, 就完成了!

转载于:https://www.cnblogs.com/leansmall/p/4715780.html

你可能感兴趣的文章
HDOJ_1061_Rightmost Digit
查看>>
【小笨鸟看JDK1.7集合源码之三】LinkedList源码剖析
查看>>
bfs,dfs区别
查看>>
Javascript端加密java服务端解密
查看>>
xml文件中引号如何处理
查看>>
Centos 下 Jenkins2.6 + Git + Maven Shell一件部署与备份
查看>>
MVC原理
查看>>
Java中堆内存和栈内存详解
查看>>
网络编程
查看>>
C# 访问USB(HID)设备方法 (转)
查看>>
linux 配置svn服务器+使用+注意事项
查看>>
关于JAVA并发编程你需要知道的——语言篇
查看>>
Spring MVC 中 HandlerInterceptorAdapter的使用
查看>>
druid 数据源 使用属性文件的一个坑
查看>>
[na]数据包由于isp不稳定丢包-seq&ack
查看>>
浅谈Web前端浏览器兼容问题
查看>>
用命令行在github新建一个项目
查看>>
测一下我心中想的事
查看>>
java中getName()、getCanonicalName()、getSimpleName()用法比较
查看>>
React Native pod install报错 `Yoga (= 0.44.3.React)` required by `React/Core (0.44.3)`
查看>>