CountView类似计数器的实现

这篇博客介绍了如何利用GitHub上的一款第三方库来实现类似计数器的功能。通过展示实际效果和详细解析布局及Activity文件,帮助读者理解并应用这一组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里使用的是 github上面第三方的

先看效果图


布局

  <com.github.premnirmal.textcounter.CounterView
        android:id="@+id/counter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/counter_view_margin"
        android:text="@string/zero"
        android:textColor="#ffffff"
        android:textSize="100sp" />

    <com.tescoo.marcwln.widget.ClearEditText
        android:id="@+id/edit"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:layout_gravity="center_horizontal"
        android:layout_margin="15dp"
        android:background="@android:color/white" />

    <Button
        android:id="@+id/btn"
        android:text="开始"
        android:background="@color/menu_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

然后是activity文件

 CounterView counter;
    ClearEditText edit;
    int value;
    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.count_view);
        counter = (CounterView) findViewById(R.id.counter);
        Typeface tf = Typeface.createFromAsset(getAssets(),
                "Uni_Sans_Light.otf");

        counter.setTypeface(tf);
        counter.setAutoFormat(false);
        counter.setFormatter(new Formatter() {
            @Override
            public String format(String prefix, String suffix, float value) {
                return prefix
                        + NumberFormat.getNumberInstance(Locale.US).format(
                        value) + suffix;
            }
        });
        counter.setAutoStart(false);//不让它自动开始

        edit = (ClearEditText) findViewById(R.id.edit);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                value = Integer.parseInt(edit.getText().toString().trim());
                setScore(value);
            }
        });

    }

    private void setScore(int value) {
        counter.setStartValue(0.0f);
        counter.setEndValue(value);
        counter.setIncrement(1.0f);
        counter.start();
//        startRingAnim(value);
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值