使用clip剪切圖像資源可以做進度條,圖像慢慢展開的效果,他使用以下幾個屬性來控制效果:
android:drawable:指定要剪切的原圖像。
android:clipOrientation:截取的方向。可取的值:horizontal和vertical。分別表示水平和垂直方向截取圖像。
android:gravity:表示如何截取圖像。例如,left表示從左側截取圖像,right表示從右側截取圖像。
做了個實現進度條的例子,效果圖如下:
布局文件如下:
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@drawable/button_abort"
android:orientation="horizontal"
android:layout_marginTop="40dp">
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@drawable/clip"/>
drawable/clip.xml如下:
android:drawable="@drawable/bg"
android:clipOrientation="horizontal"
android:gravity="left" >
java文件MainActivity代碼如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageview = (ImageView) findViewById(R.id.image);
final ClipDrawable drawable = (ClipDrawable) imageview.getBackground();
final Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
if(msg.what == 0x1233)
{
//修改ClipDrawable的level值
drawable.setLevel(drawable.getLevel() +300);
}
}
};
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,200);
}
}
用ClipDrawable對象時可以調用setLevel(int?level)方法來設置截取的區域大小,當level為0時,截取的圖片片段為空;當level為10000時,截取整張圖片。
轉載時請注明出處及相應鏈接,本文永久地址:https://blog.yayuanzi.com/8496.html
微信打賞
支付寶打賞
感謝您對作者Lena的打賞,我們會更加努力!????如果您想成為作者,請點我