android组件之ImageSwitcher
来源:互联网 发布:手机淘宝在哪开店 编辑:程序博客网 时间:2024/05/22 12:46
ImageSwitcher组件的主要功能是进行图片的切换,要实现图片的切换关键要实现ViewFactory。下面先附上效果图
首先配置main.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" android:gravity="center_horizontal" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <ImageSwitcher android:id="@+id/imgswithcer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> <LinearLayout android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:orientation="horizontal" > <Button android:id="@+id/buttonPre" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上一张" /> <Button android:id="@+id/buttonNext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下一张" /> </LinearLayout></LinearLayout>
在activity中实现工厂类
package com.example.imgswitcherdemo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.view.animation.AnimationUtils;import android.widget.Button;import android.widget.ImageSwitcher;import android.widget.ImageView;import android.widget.Toast;import android.widget.ViewSwitcher.ViewFactory;public class MainActivity extends Activity {private int foot = 0;private Button buttonPre = null;private Button buttonNext = null;private ImageSwitcher imgswitcher = null;private int imgRes[] = { R.drawable.pic_head_01, R.drawable.pic_head_01,R.drawable.pic_head_02, R.drawable.pic_head_03,R.drawable.pic_head_04, R.drawable.pic_head_05,R.drawable.pic_head_06, R.drawable.pic_head_07,R.drawable.pic_head_08, R.drawable.pic_head_09,R.drawable.pic_head_10, R.drawable.pic_head_11,R.drawable.pic_head_12, R.drawable.pic_head_13,R.drawable.pic_head_14, R.drawable.pic_head_15,R.drawable.pic_head_16, R.drawable.pic_head_17 };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);this.buttonPre = (Button) this.findViewById(R.id.buttonPre);this.buttonNext = (Button) this.findViewById(R.id.buttonNext);this.imgswitcher = (ImageSwitcher) this.findViewById(R.id.imgswithcer);this.buttonPre.setOnClickListener(new butPreOnClickListener());this.buttonNext.setOnClickListener(new butNextOnClickListener());this.imgswitcher.setFactory(new imgFactory());//设置工厂类this.imgswitcher.setImageResource(MainActivity.this.imgRes[foot]);// 一定要先设置工厂后在设置资源,不然会报空指针异常}private class butPreOnClickListener implements OnClickListener {@Overridepublic void onClick(View v) {if (v == buttonPre) {if (MainActivity.this.foot == 0) {// MainActivity.this.buttonPre.setEnabled(false);Toast.makeText(MainActivity.this, "当前已经是第一张了",Toast.LENGTH_LONG).show();} elseMainActivity.this.foot--;MainActivity.this.imgswitcher.setImageResource(MainActivity.this.imgRes[foot]);// MainActivity.this.buttonPre.setEnabled(true);}}}private class butNextOnClickListener implements OnClickListener {@Overridepublic void onClick(View v) {if (MainActivity.this.foot == MainActivity.this.imgRes.length - 1) {//MainActivity.this.buttonNext.setEnabled(false);Toast.makeText(MainActivity.this, "当前已经是最后一张了",Toast.LENGTH_LONG).show();} elseMainActivity.this.foot++;MainActivity.this.imgswitcher.setImageResource(MainActivity.this.imgRes[foot]);//MainActivity.this.buttonNext.setEnabled(true);}}/*public boolean isCheckButton() {if (MainActivity.this.foot == 0) {MainActivity.this.buttonPre.setEnabled(false);Toast.makeText(MainActivity.this, "当前已经是第一页", Toast.LENGTH_SHORT).show();} elseMainActivity.this.buttonPre.setEnabled(true);if (MainActivity.this.foot == MainActivity.this.imgRes.length - 1) {MainActivity.this.buttonNext.setEnabled(false);Toast.makeText(MainActivity.this, "当前已经是最后一页", Toast.LENGTH_SHORT).show();} elseMainActivity.this.buttonNext.setEnabled(true);return false;}*/ 也可以把按钮检测的功能独立出来private class imgFactory implements ViewFactory { //通过ViewFactory接口实现工厂类@Overridepublic View makeView() {ImageView img = new ImageView(MainActivity.this);img.setBackgroundColor(0xFFFFFFFF); // 设置背景img.setScaleType(ImageView.ScaleType.CENTER);img.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); // 定义组件return img;}}}
- android组件之ImageSwitcher
- Android 之Gallery及ImageSwitcher组件
- Android初级之组件基础11-ImageSwitcher
- android组件之gallery 、imageswitcher 详解
- Android开发之ImageSwitcher组件的…
- AndroidUI组件之ImageSwitcher
- Android之ImageSwitcher
- android 之 ImageSwitcher学习
- Android之ImageSwitcher
- Android之ImageSwitcher
- Android控件之ImageSwitcher
- Android之TextSwitcher----ImageSwitcher
- android之ImageSwitcher
- Android之ImageSwitcher
- 【Android组件学习】ImageSwitcher+Gallery组合用法
- 【Android】图片切换组件ImageSwitcher的运用
- 【Android】图片切换组件ImageSwitcher的运用
- android之ImageSwitcher 图片查看
- bind函数详解
- 关于字符编码:ASCII,Unicode和UTF-8
- OGG杂记
- 解决myeclipse不编译的方法
- ailed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
- android组件之ImageSwitcher
- json convert to string
- oracle 数据恢复
- 发送请求JSON解析自带
- iOS - 开发中的一些小技巧:
- 精简的 递归 汉诺塔 3个以上的盘子理解起来真难啊!!!
- 泛型类 泛型方法
- Mac OS将就整个文件夹中的资源编译了.APP文件中
- 按照要求的输入输出格式进行日期字符串的转化