我怎样才能循环这个过程?我想通过每次单击按钮来缩小 textview 的大小

问题描述

我怎样才能循环这个过程?我想通过每次单击按钮来缩小 textview 的大小。它适用于一次按钮点击,但不会因每次点击而缩小。

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    Button button2;
    TextView foxHealth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button2 = findViewById(R.id.button2);
        foxHealth = findViewById(R.id.foxHealth);
        int foxStartHealth = 150;
        button2.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ViewGroup.LayoutParams params = foxHealth.getLayoutParams();
                params.width = foxStartHealth - 5;
                foxHealth.setLayoutParams(params);
            }
        });
    }
}

解决方法

int foxStartHealth = 150;
    button2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ViewGroup.LayoutParams params = foxHealth.getLayoutParams();
            params.width = foxStartHealth - 5; //you always restart at 150 here
            foxHealth.setLayoutParams(params);
        }
    });

您总是缩小原始值 (foxStartHealth = 150) 而不是最新值。

params.width = params.width - 5;
,

params.width = foxHealth.getMeasuredWidth() - 5;

//使用文本视图foxHealth而不是整数foxStartHealth

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...