如何在初始化为0 Alpha的TextView中淡入淡出

问题描述

fade_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator">
    <alpha
        android:duration="500"
        android:fromAlpha="0.0"
        android:toAlpha="1.0">
    </alpha>
</set>

我的相关视图位于我的settings_layout文件中:

 <TextView
        android:id="@id/commitChangesToastContainer"
        android:layout_width="187dp"
        android:layout_height="35dp"
        android:background="@color/lightBlue"
        android:text="Commit Successful.  information Saved."
        android:textAlignment="center"
        app:layout_constraintEnd_toStartOf="@+id/commitChanges"
        app:layout_constraintHorizontal_bias="0.111"
        app:layout_constraintStart_toStartOf="@+id/agentNameLabel"
        app:layout_constraintTop_toTopOf="@+id/commitChanges" />

    <TextView
        android:id="@id/commitChangesToastContainerWarning"
        android:layout_width="187dp"
        android:layout_height="35dp"
        android:background="@color/lightBlue"
        android:text="Commit Error.  You may be missing info."
        android:textAlignment="center"
        app:layout_constraintBottom_toBottomOf="@+id/commitChanges"
        app:layout_constraintEnd_toStartOf="@+id/commitChanges"
        app:layout_constraintHorizontal_bias="0.111"
        app:layout_constraintStart_toStartOf="@+id/agentNameLabel" />

    <Button
        android:id="@+id/commitChanges"
        android:layout_width="187dp"
        android:layout_height="85dp"
        android:background="@color/lightRed"
        android:text="Commit Changes"
        app:layout_constraintBottom_toTopOf="@+id/author"
        app:layout_constraintStart_toStartOf="@+id/agentNameInput"
        app:layout_constraintTop_toBottomOf="@+id/agentNameInput"
        app:layout_constraintVertical_bias="0.05" />

这是我感到困惑的地方。如果我删除了将视图的alpha初始化为0的这四行代码(如果您想自己尝试,则可以使用块注释将其禁用),这些视图的alpha显然认为1,并且我的按钮单击将起作用基于我的布尔值的各个textview的动画。禁用此代码可使动画在1ms时将alpha更改为0,并在500ms内播放淡入,并且在动画结束时将其恢复为认的1 alpha。
我希望我的认Alpha为0。如果在XML中将Alpha设置为0,则动画不会覆盖已编译的Alpha值,因此,我确定需要以编程方式进行此操作。我不知道该怎么做。

最初将两个对象的alpha设置为0:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings_upright);

    //sets these textviews to invisible for later use. DOES NOT LET ME EDIT THE ALPHA VALUE
    TextView commitWarning = findViewById(R.id.commitChangesToastContainerWarning);
    TextView commitSuccess = findViewById(R.id.commitChangesToastContainer);
    commitWarning.setAlpha(0f);
    commitSuccess.setAlpha(0f);

根据布尔onClick淡入淡出:

    Button commitChanges = findViewById(R.id.commitChanges);
    commitChanges.setonClickListener(new View.OnClickListener() {
        public void onClick(View view){
            EditText iai = findViewById(R.id.agentIdInput); //iai = i_nput a_gent i_d
            agentIdInputString = iai.getText().toString();

        incompleteForm = agentIdInputString.equals("");//returns True if there is no input
        //please disregard my lack of an input filter

        if (incompleteForm){
            TextView commitWarning = findViewById(R.id.commitChangesToastContainerWarning);
            Animation aniFadeIn = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fade_in);
            commitWarning.startAnimation(aniFadeIn);
        } else {
        TextView commitSuccess = findViewById(R.id.commitChangesToastContainer);
        Animation aniFadeIn = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fade_in);
        commitSuccess.startAnimation(aniFadeIn);
    };

之所以这样做,是因为我想从文本视图中创建一个自己的“ Toast”容器,可以将其放置在非常特定的位置并相应地格式化文本视图,并将这种自制的吐司限制在自己的容器中布局。

这是此页面上我的应用程序蓝图的图像。您会看到我的edittext,我想基于布尔值淡入的两个对象以及我的提交按钮。如果您需要更多信息,请告诉我。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)