滑动图片验证:随着seekbar滑动,view随着动就是了,主要就是图片的比例跟滑块的图片比例
number就是相应的比例
public class SlideImageView extends View {
Bitmap bitmap;
Bitmap verifyBitmap;
Paint paint = new Paint();
// 拼图的位置
int y;
// 移动x坐标
int moveX;
// x坐标最大移动长度
int moveMax;
private float number;//扩大倍数
DecimalFormat df = new DecimalFormat("0.0000");
public SlideImageView(Context context) {
super(context);
}
public SlideImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SlideImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int width = getMeasuredWidth();
setMeasuredDimension(width,width/2);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (bitmap == null)
return;
moveMax = getWidth();
int bitmapWidth = bitmap.getWidth();
int bitmapHeight = bitmap.getHeight();
//画背景图
int width = getWidth();
int height = getHeight();
number = Float.parseFloat(df.format((float)width/bitmapWidth));
Bitmap mBitmap = Bitmap.createScaledBitmap(bitmap, width, height, true);
canvas.drawBitmap(mBitmap, 0, 0, paint);
//滑块
int verWidth = (int)(verifyBitmap.getWidth()*number);
int verHeight = (int)(verifyBitmap.getHeight()*number);
int verY = (int)(y*number);
Bitmap mverifyBitmap = Bitmap.createScaledBitmap(verifyBitmap, verWidth, verHeight, true);
canvas.drawBitmap(mverifyBitmap, moveX, verY, paint);//画验证图片
}
public void setImageBitmap(Bitmap bitmap, Bitmap verifyBitmap, int verifyY) {
this.bitmap = bitmap;
this.verifyBitmap = veri

最低0.47元/天 解锁文章
1390

被折叠的 条评论
为什么被折叠?



