博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 中文 API (35) —— ImageSwitcher
阅读量:7250 次
发布时间:2019-06-29

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

一、结构

    public class ImageSwitcher extends ViewSwitcher

    java.lang.Object

      

        android.view.ViewGroup

          android.widget.FrameLayout

            android.widget.ViewAnimator

              android.widget.ViewSwitcher

                android.widget.ImageSwitcher

二、概述

    

    (译者注:ImageSwitcherAndroid中控制图片展示效果的一个控件,如:幻灯片效果...,颇有感觉啊,做相册一绝。)

三、公共方法

         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) {
 }
}

      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
>

 本文转自博客园农民伯伯的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
Redisson 3.10.6 发布,Redis 客户端
查看>>
日志框架 - 基于spring-boot - 使用入门
查看>>
用libtommath实现RSA算法
查看>>
基于POLARDB数据库的压测实践
查看>>
通过工具SecureCRTPortable将项目部署到服务器上
查看>>
利用QRCode实现待logo的二维码的创建
查看>>
【云周刊】第190期:阿里云超算揭秘:虚拟机的心脏,物理机的肌肉
查看>>
崩溃bug日志总结3
查看>>
推荐一个有趣的Chrome扩展程序-查看任意网站的开发技术栈
查看>>
shell技巧5 - 全自动打包ipa
查看>>
uC/OS-II源码分析(六)
查看>>
阿里、美团、网易、华为等二十厂秋招Java面经大合集
查看>>
为什么说,“景区”AI 改造势在必行
查看>>
第十八章:MVVM(二)
查看>>
进程调度(二)
查看>>
python元组,集合类型,及字典补充
查看>>
9、python函数进阶
查看>>
Markdown一看就会
查看>>
dotweb——go语言的一个微型web框架(一)
查看>>
又是一个名叫草泥马的项目:thefuck
查看>>