TransitionDrawable的使用
TransitionDrawable对应标签,用于实现两个Drawable之间的淡入淡出效果。
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<-- !item的相关属性介绍-->
<item android:drawable="@color/colorAccent"
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension"
android:id="@+id/trans"
android:end="dimension"
android:start="dimension"
android:width="dimension"
android:height="dimension"
android:gravity="center"/>
</transition>
例子
1.在trans_drawable.xml文件中
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/red"/>
<item android:drawable="@color/blue"/>
</transition>
2.在activity_main.xml文件中TextView作为背景使用
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="www.yundo.com.drawable.MainActivity">
<TextView
android:id="@+id/tv"
android:background="@drawable/trans_drawable"
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="Hello World!" />
</RelativeLayout>
3.在MainActivity中
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private boolean isBlueToRed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.tv);
final TransitionDrawable background = (TransitionDrawable) mTextView.getBackground();
mTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isBlueToRed){
background.reverseTransition(2000);
}else {
background.startTransition(2000);
}
isBlueToRed = !isBlueToRed;
}
});
}
}
本文介绍如何使用 TransitionDrawable 实现 Android 中两个 Drawable 间的淡入淡出过渡效果。通过 XML 定义 trans_drawable 资源文件,并在 Activity 中设置 TextView 的背景为该资源,通过点击事件触发淡入淡出动画。
663

被折叠的 条评论
为什么被折叠?



