淡入淡出.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按钮。如果你需要更多的信息,请告诉我。
暂无答案!
目前还没有任何答案,快来回答吧!