使用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的打赏,我们会更加努力! 如果您想成为作者,请点我