我有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>
我想使表格行在按钮触摸时具有淡出效果,反之亦然。我该怎么办?
答案 0 :(得分:15)
任何View
(包括TableRow
)都可以附加淡入淡出动画,但您需要能够在代码中引用您的视图,因此该行需要一个ID:< / p>
<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>
现在你可以在某个地方的Java代码中引用行本身(或许像onCreate()
那样)
View row = findViewById(R.id.my_row);
请注意,我不会将其转换为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);
}
}
淡入和淡出是Android程序包中定义的标准动画,您无需自己创建它们,只需使用AnimationUtils.loadAnimation()
加载它们即可。在此示例中,单击同一按钮只是在淡入和淡出之间切换,具体取决于视图是否已经可见。
希望有帮助!