// Path: app/src/main/java/com/yoga/oneweather/util/LogUtil.java
// public class LogUtil {
//     public static final int VERBOSE = 1;
//     public static final int DEBUG = 2 ;
//     public static final int INFO = 3 ;
//     public static final int WARN = 4 ;
//     public static final int ERROR = 5 ;
//     public static final int NOTHING = 6 ;
// 
//     public static int level = VERBOSE ;
//     public static void v(String tag, String msg){
//         if(level == VERBOSE){
//             Log.v(tag, msg);
//         }
//     }
//     public static void d(String tag,String msg){
//         if(level <= DEBUG){
//             Log.d(tag, msg);
//         }
//     }
// 
//     public static void i(String tag,String msg){
//         if(level <= INFO){
//             Log.i(tag, msg);
//         }
//     }
// 
// 
//     public static void w(String tag,String msg){
//         if(level <= WARN){
//             Log.w(tag, msg);
//         }
//     }
// 
//     public static void e(String tag,String msg){
//         if(level <= ERROR){
//             Log.e(tag, msg);
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/com/yoga/oneweather/util/MiscUtil.java
// public class MiscUtil {
//     /**
//      * 测量 view
//      * @param measureSpec
//      * @param defaultSize View的默认大小
//      * @return
//      */
//     public static int measure(int measureSpec ,int defaultSize){
//         int result = defaultSize;
//         int specMode = View.MeasureSpec.getMode(measureSpec);
//         int specSize = View.MeasureSpec.getSize(measureSpec);
//         if(specMode == View.MeasureSpec.EXACTLY){
//             result = specSize;
//         }else if(specMode == View.MeasureSpec.AT_MOST){
//             result = Math.min(result,specSize);
//         }
//         return result;
//     }
// 
//     /**
//      * dp 转 px
//      * @param context
//      * @param dip
//      * @return
//      */
//     public static int dipToPx(Context context, float dip){
//         float density  = context.getResources().getDisplayMetrics().density;
//         return (int) (dip * density + 0.5f * (dip >= 0 ? 1 : -1));
//     }
// 
// 
//     /**
//      * 获取数值精度格式化字符串
//      * @param precision
//      * @return
//      */
//     public static String getPrecisionFormat(int precision){
//         return "%."+precision+"f" ;
//     }
// 
// 
// 
//     /**
//      * 测量文字高度
//      */
//     public static float measureTextHeight(Paint paint){
//         Paint .FontMetrics fontMetrics = paint.getFontMetrics();
//         return (Math.abs(fontMetrics.ascent) + fontMetrics.descent);
//     }
// 
// 
// }


import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.LinearInterpolator;
import com.yoga.oneweather.R;
import com.yoga.oneweather.util.LogUtil;
import com.yoga.oneweather.util.MiscUtil;
import static java.lang.Math.PI;
import static java.lang.Math.atan;
package com.yoga.oneweather.widget;




/**
 * Created by wyg on 2017/8/1.
 */

public class Windmill extends View {

    private Paint mWindmillPaint; //支柱画笔
    private Path mWindPath;
    private Path mPillarPath;
    private int width,height;
    private int mWindmillColor;//风车颜色
    private float mWindLengthPercent;//扇叶长度
    private Point mCenterPoint;//圆心
    private float x1,y1,x2,y2,x3,y3,x4,y4,x5,y5;//扇叶的点
    private double rad1,rad2,rad3,rad4;//弧度
    private double r1,r2,r3,r4;//斜边
    private ObjectAnimator mAnimator;//动画
    private float angle;//旋转角度
    private int windSpeed = 1;


    private int mDefualtSize;
    private Context mContext;

    private static final float DEFAULT_DIP = 120;
    private static final String TAG = "Windmill";
    public Windmill(Context context) {
        this(context,null);
    }

    public Windmill(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs,0);
    }

    public Windmill(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
// Path: app/src/main/java/com/yoga/oneweather/util/LogUtil.java
// public class LogUtil {
//     public static final int VERBOSE = 1;
//     public static final int DEBUG = 2 ;
//     public static final int INFO = 3 ;
//     public static final int WARN = 4 ;
//     public static final int ERROR = 5 ;
//     public static final int NOTHING = 6 ;
// 
//     public static int level = VERBOSE ;
//     public static void v(String tag, String msg){
//         if(level == VERBOSE){
//             Log.v(tag, msg);
//         }
//     }
//     public static void d(String tag,String msg){
//         if(level <= DEBUG){
//             Log.d(tag, msg);
//         }
//     }
// 
//     public static void i(String tag,String msg){
//         if(level <= INFO){
//             Log.i(tag, msg);
//         }
//     }
// 
// 
//     public static void w(String tag,String msg){
//         if(level <= WARN){
//             Log.w(tag, msg);
//         }
//     }
// 
//     public static void e(String tag,String msg){
//         if(level <= ERROR){
//             Log.e(tag, msg);
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/com/yoga/oneweather/util/MiscUtil.java
// public class MiscUtil {
//     /**
//      * 测量 view
//      * @param measureSpec
//      * @param defaultSize View的默认大小
//      * @return
//      */
//     public static int measure(int measureSpec ,int defaultSize){
//         int result = defaultSize;
//         int specMode = View.MeasureSpec.getMode(measureSpec);
//         int specSize = View.MeasureSpec.getSize(measureSpec);
//         if(specMode == View.MeasureSpec.EXACTLY){
//             result = specSize;
//         }else if(specMode == View.MeasureSpec.AT_MOST){
//             result = Math.min(result,specSize);
//         }
//         return result;
//     }
// 
//     /**
//      * dp 转 px
//      * @param context
//      * @param dip
//      * @return
//      */
//     public static int dipToPx(Context context, float dip){
//         float density  = context.getResources().getDisplayMetrics().density;
//         return (int) (dip * density + 0.5f * (dip >= 0 ? 1 : -1));
//     }
// 
// 
//     /**
//      * 获取数值精度格式化字符串
//      * @param precision
//      * @return
//      */
//     public static String getPrecisionFormat(int precision){
//         return "%."+precision+"f" ;
//     }
// 
// 
// 
//     /**
//      * 测量文字高度
//      */
//     public static float measureTextHeight(Paint paint){
//         Paint .FontMetrics fontMetrics = paint.getFontMetrics();
//         return (Math.abs(fontMetrics.ascent) + fontMetrics.descent);
//     }
// 
// 
// }


// Path: app/src/main/java/com/yoga/oneweather/widget/Windmill.java
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.LinearInterpolator;
import com.yoga.oneweather.R;
import com.yoga.oneweather.util.LogUtil;
import com.yoga.oneweather.util.MiscUtil;
import static java.lang.Math.PI;
import static java.lang.Math.atan;

package com.yoga.oneweather.widget;




/**
 * Created by wyg on 2017/8/1.
 */

public class Windmill extends View {

    private Paint mWindmillPaint; //支柱画笔
    private Path mWindPath;
    private Path mPillarPath;
    private int width,height;
    private int mWindmillColor;//风车颜色
    private float mWindLengthPercent;//扇叶长度
    private Point mCenterPoint;//圆心
    private float x1,y1,x2,y2,x3,y3,x4,y4,x5,y5;//扇叶的点
    private double rad1,rad2,rad3,rad4;//弧度
    private double r1,r2,r3,r4;//斜边
    private ObjectAnimator mAnimator;//动画
    private float angle;//旋转角度
    private int windSpeed = 1;


    private int mDefualtSize;
    private Context mContext;

    private static final float DEFAULT_DIP = 120;
    private static final String TAG = "Windmill";
    public Windmill(Context context) {
        this(context,null);
    }

    public Windmill(Context context, @Nullable AttributeSet attrs) {
        this(context, attrs,0);
    }

    public Windmill(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        LogUtil.d(TAG, "Windmill: "+"构造函数");