之前的一篇文章《Android自定义view——滚动选择器》(没看过的同学建议先去了解一下)介绍了滚动选择器的原理,并实现了字符串选择器。现在要讲讲图片选择器的实现,以及通过选择器实现老虎机效果。
图片选择器
跟字符串选择器(StringScrollPicker)一样,图片选择器继承了ScrollPickerView,并在drawItem()方法里面实现图片的绘制。这里边提供了三种图片绘制模式:填充、居中、指定大小。
public class BitmapScrollPicker extends ScrollPickerView<Bitmap> {
/**
* 图片绘制模式:填充
*/
public final static int DRAW_MODE_FULL = 1;
/**
* 图片绘制模式:居中
*/
public final static int DRAW_MODE_CENTER = 2;
/**
* 图片绘制模式:指定大小
*/
public final static int DRAW_MODE_SPECIFIED_SIZE = 3;
...
@Override
public void drawItem(Canvas canvas, List<Bitmap> data, int position, int relative, float moveLength, float top) {
...
}
...
}
老虎机
其实老虎机就是三个图片滚动选择器的组合,另外加上自动滚动及控制每个滚动器的结果。下面是老虎机SlotMachine的简单布局,主要是把三个滚动选择器的长度设置得比父容器稍高大一点,使得最上面和最下面的奖励只显示一半。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_gravity="center_horizontal"
android:padding="24dp"
>
<Li