使用transitionDrawable实现图片颜色渐变,效果非常漂亮,先见效果图:
代码如下:
1.先看xml代码
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<!--注意:transition只能有两个子item-->
<item android:drawable="@drawable/header1"></item>
<item android:drawable="@drawable/header2"></item>
</transition>
2.再看布局代码
<?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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="test.minwenping.com.transitiondrawabledemo.MainActivity">
<ImageView
android:src="@drawable/picture"
android:layout_centerInParent="true"
android:id="@+id/iv"
android:layout_width="200dp"
android:layout_height="200dp" />
<Button
android:id="@+id/btn_open"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/iv"
android:onClick="open"
android:text="open" />
<Button
android:id="@+id/btn_close"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/btn_open"
android:onClick="close"
android:text="open" />
</RelativeLayout>
3.看activity的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = ((ImageView) findViewById(R.id.iv));
tranDrawable = ((TransitionDrawable) iv.getDrawable());
}
public void open(View view) {
tranDrawable.startTransition(1500);
}
public void close(View view) {
tranDrawable.reverseTransition(1500);
}