zoukankan      html  css  js  c++  java
  • (四十六)一个属性动画的经典例子(让TextView中的数值从某一个值变成0再变到另一个值)

    1、demo的结构图

    2、CustomFontPercedntTextView.java的代码

    package com.example.propertyanimation;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.TextView;
    
    public class CustomFontPercedntTextView extends TextView {
        private int percentage;
    
        public CustomFontPercedntTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
           }
    
        public CustomFontPercedntTextView(Context context, AttributeSet attrs) {
            super(context, attrs);
           }
    
        public CustomFontPercedntTextView(Context context) {
            super(context);
         }
        public int getPercentage() {
            return percentage;
        }
    
        public void setPercentage(int percentage) {
            this.percentage = percentage;
            setText(percentage + "%");
        }
    
    }

    2、MainAcitivity.java的代码

    package com.example.propertyanimation;
    
    import android.animation.AnimatorInflater;
    import android.animation.AnimatorSet;
    import android.animation.ObjectAnimator;
    import android.animation.PropertyValuesHolder;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.animation.LinearInterpolator;
    import android.widget.TextView;
    
    public class MainActivity extends Activity {
        private CustomFontPercedntTextView tv_percentage;
    
        private TextView tv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tv = (TextView) findViewById(R.id.tv);
    
        }
    
        public void click(View view) {
            tv_percentage = (CustomFontPercedntTextView) this
                    .findViewById(R.id.cftv);
    
            PropertyValuesHolder prvh = PropertyValuesHolder.ofInt("percentage",
                    30, 0, 70);
            ObjectAnimator anim = ObjectAnimator.ofPropertyValuesHolder(
                    this.tv_percentage, prvh);
            anim.setDuration(5000);
            anim.setInterpolator(new LinearInterpolator());
            anim.start();
    
            AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(this,
                    R.animator.property_animator);
            set.setTarget(tv);
            set.start();
        }
    }
  • 相关阅读:
    一周试用yii开发一个带各种该有功能的web程序(三)
    制作centos的U盘启动盘
    VMware下centos6.3minimal搭建网络环境
    [原]SQLite的学习系列之获取数据库版本
    Android Studio NDK 学习之接受Java传入的字符串
    [原]Ubuntu 14.04编译Android Kernel
    [原]运行编译好的Android模拟器
    [原]编译Android源码过程中遇到的问题
    [原]Android打包之Gradle打包
    [原]Android打包之跨平台打包
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4301735.html
Copyright © 2011-2022 走看看