1. 程式人生 > >初學Android 使用Drawable資源之使用ClipDrawable資源 十六

初學Android 使用Drawable資源之使用ClipDrawable資源 十六

lang linear fir tps n) schedule 基礎 tail -h

ClipDrawable代表從其它位圖上截取一個"圖片片段",XML中的根元素為<clip.../>,截取的方向由clipOrientation控制

下面以一個慢慢展開的圖片為例

先定義一個ClipDrawable資源文件my_clip.xml

<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/fengjing"
    android:clipOrientation
="horizontal" android:gravity="center">
</clip>

接下來在主界面main.xml中的imageview中引用它

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation
="vertical" >
<!-- 這裏imageView的src定義為clipdrawable資源 --> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/my_clip" /> </LinearLayout>
主界面代碼

package WangLi.Resouce.ClipDrawableTest;

import
java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.graphics.drawable.ClipDrawable; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.widget.ImageView; public class ClipDrawableTest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView imageview = (ImageView)findViewById(R.id.image); //獲取圖片所顯示的ClipDrawble對象 final ClipDrawable drawable = (ClipDrawable)imageview.getDrawable(); final Handler handler = new Handler() { public void handleMessage(Message msg) { if(msg.what == 0x1233) { //修改ClipDrawable的level值 drawable.setLevel(drawable.getLevel() +200); } } }; final Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { Message msg = new Message(); msg.what = 0x1233; //發送消息,通知應用修改ClipDrawable對象的level值 handler.sendMessage(msg); //取消定時器 if(drawable.getLevel() >= 10000) { timer.cancel(); } } },0,300); } }
運行效果如下

剛開始圖片從中間往兩邊展開

技術分享圖片

最後展開完整的圖片

技術分享圖片

利用ClipDrawable,還可以做圖片進度條

再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow

初學Android 使用Drawable資源之使用ClipDrawable資源 十六