package com.cheng.animationstudy.customview.meituan;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.AttributeSet;
import android.view.View;
import com.cheng.animationstudy.R;
/**
* 第二个状态的实现:
* 第二个状态是一个帧动画,为了保证View大小的统一,
* 进行自定义View,这个自定义View很简单,
* 只是为了和第一阶段View的宽高保证一致即可
*/
public class MeiTuanRefreshSecondStepView extends View {
private Bitmap mEndBitmap;
public MeiTuanRefreshSecondStepView(Context context) {
super(context);
init();
}
public MeiTuanRefreshSecondStepView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MeiTuanRefreshSecondStepView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mEndBitmap = Bitmap.createBitmap(
BitmapFactory.decodeResource(
getResources(),
R.mipmap.sdd_meituan_pull_end_image_frame_05));
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(
measureWidth(widthMeasureSpec),
measureWidth(widthMeasureSpec)*mEndBitmap.getHeight()/mEndBitmap.getWidth());
}
private int measureWidth(int widthMeasureSpec) {
int result = 0;
int size = MeasureSpec.getSize(widthMeasureSpec);
int mode = MeasureSpec.getMode(widthMeasureSpec);
if (mode == MeasureSpec.EXACTLY) {
result = size;
} else {
result = mEndBitmap.getWidth();
if (mode == MeasureSpec.AT_MOST) {
result = Math.min(result, size);
}
}
return result;
}
}