Android-drawable资源-clipdrawable

本文介绍如何利用Android中的ClipDrawable组件实现图片的水平或垂直裁剪效果,并通过一个具体的例子展示了如何创建一个从左至右逐渐显示的图片进度条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         在res/drawable中有clip标签,它的作用是在drawable属性所指定的图片上截取部分图片!可以用clipDrawable制作图片进度条

       属性分析:drawable=“@drawable/..”只要截取的原图

                           clipOrientation=“horizontal”   水平方向

                                                       “vertical”     竖直方向

                           gravity=“left”     左边开始(right,右边;top,上面;。。。。)

代码实例:

1,先定义clip.xml文件:

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


2,clip.xml的引用文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <ImageView 
        android:id="@+id/iv_clip"
        android:contentDescription="@null"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/clip"/>
    

</LinearLayout>


3,是它从左到右依次展开的代码:

package com.example.getmynumber.activity.drawable;

import java.util.Timer;
import java.util.TimerTask;

import com.example.getmynumber.R;

import android.app.Activity;
import android.graphics.drawable.ClipDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ImageView;

public class DrawableList extends Activity{
	
	private ImageView iv_clip;
	
	private ClipDrawable clipDrawable;
	
	private Handler handler=new Handler(){
		
		public void handleMessage(android.os.Message msg) {
			clipDrawable.setLevel(clipDrawable.getLevel()+50);
		};
	};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.drawable_list);
		iv_clip=(ImageView) findViewById(R.id.iv_clip);
		clipDrawable=(ClipDrawable) iv_clip.getDrawable();
		final Timer timer=new Timer();
		timer.schedule(new TimerTask() {
			
			@Override
			public void run() {
				handler.sendEmptyMessage(0);
				if(clipDrawable.getLevel()>15000){
					timer.cancel();
				}
			}
		}, 300,50);
		
		
	}

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值