Android ClipDrawable 应用
来源:互联网 发布:3m易清洁涂层 知乎 编辑:程序博客网 时间:2024/06/05 16:10
ClipDrawable 对应于标签<clip>,它可以根据当前的等级<level>来裁剪一个Drawable,裁剪的方向可以通过android:clipOrientation和android:gravity来共同控制,android:clipOrientation表示裁剪方向,有竖直、水平方向,常常用于满圆的进度条。
准备两张图片
命名为full_classroom_img 、free_classroom_img
drawable 文件夹下
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/full_classroom_img"
android:clipOrientation="vertical"
android:gravity="bottom">
</clip>
布局文件
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/free_classroom_img"
/>
<ImageView
android:id="@+id/full"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/clip"
/>
</FrameLayout>
自定义控件
public class MyPercentImage extends FrameLayout {
private ClipDrawable drawable;
public MyPercentImage(Context context) {
super(context);
init(context);
}
public MyPercentImage(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
private void init(Context context)
{
LayoutInflater.from(context).inflate(R.layout.my_progress_bar, this, true);
ImageView image = (ImageView) findViewById(R.id.full);
drawable = (ClipDrawable)image.getDrawable();
drawable.setLevel(5000);
}
public void setLevel(float level)
{
drawable.setLevel((int)(level*10000));
}
}
MainActivity
public class MainActivity extends Activity {
MyPercentImage clip;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
clip = (MyPercentImage) findViewById(R.id.clip);
clip.setLevel(0.3f);
}
}
效果图
Drawable的等级(level)是有范围的,即 0~10000,最小等级是0,最大等级是10000,对于ClipDrawable来说,等级0表示完全裁剪,即整个Drawable不可见,等级10000表示不裁剪,上面写的0.3F*10000就是3000,表示30%
- Android ClipDrawable 应用
- ClipDrawable 的应用实例
- android drawable clipDrawable
- Android-drawable资源-clipdrawable
- 6.9 Android Framework - ClipDrawable
- Android开发之ClipDrawable
- Android Drawable之ClipDrawable
- Android Drawable之ClipDrawable
- Android ClipDrawable资源
- android ClipDrawable实现进度条
- Android中关于ClipDrawable
- ClipDrawable
- ClipDrawable
- clipdrawable
- ClipDrawable
- Android中ClipDrawable的用法
- android XML file之ClipDrawable
- android ClipDrawable的基本使用
- thrift安装配置及简例
- POJ1860-Currency Exchange
- 用java反射技术创建通用的JDBC连接
- Python Tutorial 学习笔记5 --IO
- Mybatis框架学习(四)—查询缓存与spring的整合开发
- Android ClipDrawable 应用
- 最详细的CocoaPods安装教程附常见错误总结
- UITextFiled长度限制
- C 实现射线检测多边形碰撞
- linux命令行解析(一)
- Swift
- RabbitMQ(二):实例demo
- clearfix清除浮动方案
- Centos6.5使用yum安装mysql