ImageView和ImageSwitcher都是用来显示图片的。只不过后者在更新显示的图片的时候可以有动画效果。

注意点:

1.ImageSwitcher初始化需要定义一个ViewFactory,该ViewFactory生成的对象必须为ImageView。

iSwitcher.setFactory(new ViewFactory() {

            @Override
public View makeView() {
//创建一个ImageView对象
ImageView imageView = new ImageView(MainActivity.this);
//设置图片的拉伸方式
imageView.setScaleType(ImageView.ScaleType.FIT_START);
//设置图片的填充方式
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.WRAP_CONTENT ,LayoutParams.WRAP_CONTENT)
); return imageView;
}
});

2.设置图片的时候有着和ImageView一样的方法,一般用setImageResource(int resId) 和 setImageDrawable(Drawable drawable)

布局文件

<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"> <ImageSwitcher
android:id="@+id/imageSwitcher_id"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_margin="16dp"
android:layout_gravity="center_horizontal"
android:inAnimation="@android:anim/slide_in_left"
android:outAnimation="@android:anim/slide_out_right"/>
<Button
android:id="@+id/prev_button_id"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="上一幅图片" /> <Button
android:id="@+id/next_button_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="下一幅图片" /> </LinearLayout>

MainActivity.java

package com.example.imageswitcher;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Gallery.LayoutParams;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory; public class MainActivity extends Activity { ImageSwitcher iSwitcher;
Button prevBtn,nextBtn; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); viewInit();
//第一种设置图片的方式
iSwitcher.setImageResource(R.drawable.ic_launcher); prevBtn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO 自动生成的方法存根
iSwitcher.setImageResource(R.drawable.ic_launcher);
}
}); nextBtn.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
//第二种设置图片的方式
iSwitcher.setImageDrawable(getResources().getDrawable(R.drawable.kale));
}
});
} private void viewInit() {
iSwitcher = (ImageSwitcher)findViewById(R.id.imageSwitcher_id);
iSwitcher.setFactory(new ViewFactory() { @Override
public View makeView() {
//创建一个ImageView对象
ImageView imageView = new ImageView(MainActivity.this);
//设置图片的拉伸方式
imageView.setScaleType(ImageView.ScaleType.FIT_START);
//设置图片的填充方式
imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
LayoutParams.WRAP_CONTENT ,LayoutParams.WRAP_CONTENT)
); return
imageView;
}
});
prevBtn = (Button) findViewById(R.id.prev_button_id);
nextBtn = (Button)findViewById(R.id.next_button_id);
}
}

最新文章

  1. 【转】App开放接口api安全性—Token签名sign的设计与实现
  2. javascript学习之通过class获取元素
  3. C# 多线程详解 Part.03 (定时器)
  4. Apache虚拟目录(二)
  5. 使用c++11改写loki的TypeList
  6. 转:Selenium2.0之grid学习总结
  7. java-7继承
  8. webpack-react之webpack篇(http://www.jianshu.com/p/794d573d2c53)
  9. orcl数据库先决条件检查时失败
  10. U盘中的快捷方式解析
  11. 部署WebService
  12. [osg]osgcallback各种回调使用的例子介绍
  13. webView 的种种
  14. 特级教师总结的教育之33条(ZZ)
  15. Book Contents Reviews Notes Errata Articles Talks Downloads Resources Code Formatter Cover of C# in Depth Order now (3rd edition) Implementing the Singleton Pattern in C#
  16. SaltStack salt-ssh 用法
  17. 世纪佳缘信息爬取存储到mysql,下载图片到本地,从数据库选取账号对其发送消息更新发信状态
  18. thinkphp整合系列之phpexcel导入excel数据
  19. 一点记忆—— Java框架知识的学习有感
  20. 完整读写txt 并提取{}里的内容

热门文章

  1. 一步一步学习IdentityServer3 (4)
  2. AIM Tech Round 4 (Div. 1) C - Upgrading Tree 构造 + 树的重心
  3. LOOPS 概率dp
  4. css细节:尖角处理
  5. VScode 光标乱跳
  6. 【FFT&amp;NTT 总结】
  7. 理解%r和%s的区别
  8. 洛谷P4141消失之物
  9. HDU 5832 A water problem 水题
  10. 自动添加 Qt 开发生成的 exe 所需的依赖环境