本实例 只是设置一个定时器,让程序不断的调用 ClipDrawable 的setLevel(int Level);方法即可实现图片徐徐展开的效果.
指定如下三个属性:
- android:Drawable: 指定截取的 Drawable 对象.
- android:clipOrientation 指定截取方向,可设置水平和垂直截取.
- android:gravity 指定截取时的对齐方式.
ClipDrawable 使用时可以调用 setLevel(int Level)方法来截取的区域大小.当 Level 为0,时 截取的图片片段为空,当 Level为10000 时,截取整张图片.
package com.test.clipdrawable;
import android.graphics.drawable.ClipDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView) findViewById(R.id.image);
//获取图片所显示的 ClipDrawable 对象
final ClipDrawable drawable = (ClipDrawable) imageView.getDrawable();
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what==0x123){
//修改 ClipDrawable的 Level的值
drawable.setLevel(drawable.getLevel()+200);
}
}
};
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Message message = Message.obtain();
message.what = 0x123;
//发送消息,通知应用修改 ClipDrawable 对象 的 level值
handler.sendMessage(message);
//取消定时器
if (drawable.getLevel()>=10000){
timer.cancel();
}
}
}, 0, 300);
}
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:orientation="vertical"
tools:context="com.test.clipdrawable.MainActivity">
<ImageView
android:id="@+id/image"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitStart"
android:src="@drawable/my_clip"
/>
</LinearLayout>
资源文件
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/shuangta"
android:clipOrientation="horizontal"
android:gravity="center"
>
</clip>
3144

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



