动画 友盟

Values

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="CircleView">
        <attr name="radius" format="integer"></attr>
        <attr name="coloer" format="color"></attr>
    </declare-styleable>
</resources>

布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.zhoukao3lianxi.MainActivity">

    <com.example.zhoukao3lianxi.CircleView
        android:id="@+id/cir_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:radius="60"
        app:coloer="#f00"/>
    <LinearLayout
        android:orientation="vertical"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <Button
                android:id="@+id/btn_ping"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="平移"/>
            <Button
                android:id="@+id/btn_suo"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="缩放"/>
            <Button
                android:id="@+id/btn_xuan"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="旋转"/>
            <Button
                android:id="@+id/btn_tou"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="透明"/>
        </LinearLayout>
        <Button
            android:id="@+id/btn_tongh"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="集合"/>
        <Button
            android:id="@+id/btn_tiao"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="跳转"/>
    </LinearLayout>
</RelativeLayout>

自定义圆

public class CircleView extends View{

    private int radius;
    private int color;

    public CircleView(Context context) {
        super(context);
    }

    public CircleView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CircleView);

        for (int i = 0; i < typedArray.length(); i++) {
            int index = typedArray.getIndex(i);
            switch (index){
                case R.styleable.CircleView_radius:
                    radius = typedArray.getInt(index, 20);
                    break;
                case R.styleable.CircleView_coloer:
                    color = typedArray.getColor(index, Color.GREEN);
                    break;
            }
        }
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(getMeasuredWidth(widthMeasureSpec),getMeasuredHeight(heightMeasureSpec));
    }

    private int getMeasuredHeight(int heightMeasureSpec) {
        int mode = MeasureSpec.getMode(heightMeasureSpec);
        int size = MeasureSpec.getSize(heightMeasureSpec);
        int result=0;
        if (mode==MeasureSpec.AT_MOST){
            result=getPaddingTop()+getPaddingBottom()+2*radius;
        }else if (mode==MeasureSpec.EXACTLY){
            result=size;
        }
        return result;
    }

    private int getMeasuredWidth(int widthMeasureSpec) {
        int mode = MeasureSpec.getMode(widthMeasureSpec);
        int size = MeasureSpec.getSize(widthMeasureSpec);
        int result=0;
        if (mode==MeasureSpec.AT_MOST){
            result=getPaddingLeft()+getPaddingRight()+2*radius;
        }else if (mode==MeasureSpec.EXACTLY){
            result=size;
        }
        return result;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setColor(color);
        paint.setAntiAlias(true);
        canvas.drawCircle(radius,radius,radius,paint);
    }
}

main

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private CircleView cir_view;
    private Button btn_ping;
    private Button btn_suo;
    private Button btn_tou;
    private Button btn_xuan;
    private Button btn_tongh;
    private MainActivity context;
    private Button btn_tiao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cir_view = findViewById(R.id.cir_view);
        btn_ping = findViewById(R.id.btn_ping);
        btn_suo = findViewById(R.id.btn_suo);
        btn_tou = findViewById(R.id.btn_tou);
        btn_xuan = findViewById(R.id.btn_xuan);
        btn_tongh = findViewById(R.id.btn_tongh);
        btn_tiao = findViewById(R.id.btn_tiao);
        btn_ping.setOnClickListener(this);
        btn_suo.setOnClickListener(this);
        btn_tongh.setOnClickListener(this);
        btn_tou.setOnClickListener(this);
        btn_xuan.setOnClickListener(this);
        btn_tiao.setOnClickListener(this);
        context = MainActivity.this;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_ping:
                Animator animator = AnimatorInflater.loadAnimator(context, R.animator.ping);
                animator.setTarget(cir_view);
                animator.start();
                break;
            case R.id.btn_suo:
                animator = AnimatorInflater.loadAnimator(context, R.animator.sou);
                animator.setTarget(cir_view);
                animator.start();
                break;
            case R.id.btn_tou:
                animator = AnimatorInflater.loadAnimator(context, R.animator.tou);
                animator.setTarget(cir_view);
                animator.start();
                break;
            case R.id.btn_xuan:
                animator = AnimatorInflater.loadAnimator(context, R.animator.xuan);
                animator.setTarget(cir_view);
                animator.start();
                break;
            case R.id.btn_tongh:
                animator = AnimatorInflater.loadAnimator(context, R.animator.dongh);
                animator.setTarget(cir_view);
                animator.start();
                break;
            case R.id.btn_tiao:
                    startActivity(new Intent(this,Main2Activity.class));
                break;
        }
    }
}

Main2

public class Main2Activity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_login;
    UMAuthListener authListener = new UMAuthListener() {
        /**
         * @desc 授权开始的回调
         * @param platform 平台名称
         */
        @Override
        public void onStart(SHARE_MEDIA platform) {

        }

        /**
         * @desc 授权成功的回调
         * @param platform 平台名称
         * @param action 行为序号,开发者用不上
         * @param data 用户资料返回
         */
        @Override
        public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {

            Toast.makeText(Main2Activity.this, "成功了", Toast.LENGTH_LONG).show();

        }

        /**
         * @desc 授权失败的回调
         * @param platform 平台名称
         * @param action 行为序号,开发者用不上
         * @param t 错误原因
         */
        @Override
        public void onError(SHARE_MEDIA platform, int action, Throwable t) {

            Toast.makeText(Main2Activity.this, "失败:" + t.getMessage(),Toast.LENGTH_LONG).show();
        }

        /**
         * @desc 授权取消的回调
         * @param platform 平台名称
         * @param action 行为序号,开发者用不上
         */
        @Override
        public void onCancel(SHARE_MEDIA platform, int action) {
            Toast.makeText(Main2Activity.this, "取消了", Toast.LENGTH_LONG).show();
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        btn_login = findViewById(R.id.btn_login);
        btn_login.setOnClickListener(this);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
    }

    @Override
    public void onClick(View v) {
        UMShareAPI.get(this).getPlatformInfo(Main2Activity.this, SHARE_MEDIA.QQ, authListener);
    }
}

APP

public class app extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        UMConfigure.init(this,"5b7f7436f43e481a4900010e"
                ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
        PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
        //豆瓣RENREN平台目前只能在服务器端配置
        PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
        PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
        PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
        PlatformConfig.setAlipay("2015111700822536");
        PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
        PlatformConfig.setPinterest("1439206");
        PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
        PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
        PlatformConfig.setVKontakte("5764965","5My6SNliAaLxEm3Lyd9J");
        PlatformConfig.setDropbox("oz8v5apet3arcdy","h7p2pjbzkkxt02a");
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42821177/article/details/82015883