如何淡入textview初始化为0 alpha

j0pj023g  于 2021-07-05  发布在  Java
关注(0)|答案(0)|浏览(248)

淡入淡出.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>

位于“我的设置”布局文件中的我的相关视图:

<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);
    };

我这样做的原因是因为我想从一个textview中创建我自己的“toast”容器,我可以将它放在一个非常特定的位置,并相应地格式化textview,并将这个自制的toast约束到我的布局中。
这是我这个页面的应用程序蓝图的图像。您可以看到我的edittext、基于布尔值淡入的两个对象以及我的commit按钮。如果你需要更多的信息,请告诉我。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题