dev*_*oid 4 animation android invisible fadeout fadein
我有TableRow一个TextView.这是它的xml.
<TableRow
android:layout_height="fill_parent"
android:layout_gravity="bottom"
android:layout_width="fill_parent"
android:background="#BF000000">
<TextView
android:id="@+id/topText"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="19sp"
android:background="#BF000000"
android:layout_gravity="center_horizontal"
android:text="@string/text_searchword"
android:layout_width="fill_parent">
</TextView>
</TableRow>
Run Code Online (Sandbox Code Playgroud)
我希望使表格行在按钮触摸时具有淡出效果,反之亦然.我该怎么做?
Dev*_*red 15
任何View(TableRow包含的)都可以附加淡入淡出动画,但是您需要能够在代码中引用您的视图,因此该行需要一个id:
<TableRow
android:id="@+id/my_row"
android:layout_height="fill_parent"
android:layout_gravity="bottom"
android:layout_width="fill_parent"
android:background="#BF000000">
<TextView
android:id="@+id/topText"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:textSize="19sp"
android:background="#BF000000"
android:layout_gravity="center_horizontal"
android:text="@string/text_searchword"
android:layout_width="fill_parent">
</TextView>
</TableRow>
Run Code Online (Sandbox Code Playgroud)
现在,您可以在Java代码中引用行本身(onCreate()可能像)
View row = findViewById(R.id.my_row);
Run Code Online (Sandbox Code Playgroud)
请注意,我不把它作为一个TableRow.如果你需要用它来做其他的事情,你可以,但只是设置可见性,将它留作View是可以的.然后只需构建一个按钮单击方法,如下所示:
public void onClick(View v) {
View row = findViewById(R.id.myrow);
if(row.getVisibility() == View.VISIBLE) {
row.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
row.setVisibility(View.INVISIBLE);
} else {
row.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
row.setVisibility(View.VISIBLE);
}
}
Run Code Online (Sandbox Code Playgroud)
淡入和淡出是Android包中定义的标准动画,您不需要自己创建它们,只需使用它们加载它们AnimationUtils.loadAnimation().在此示例中,单击相同的按钮只是在淡入和淡出之间切换,具体取决于视图是否已经可见.
希望有帮助!