总结 2017-12-19
来源:互联网 发布:手机电视下载软件 编辑:程序博客网 时间:2024/04/30 02:05
圆形图标的实现:CircleImageView主要就是一个继承了ImageView 的类具体方法,首先先创建一个java文件,用来编写我们的CircleImageView代码,大致内容如下:
package com.example.mrli.fanggouwuche;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PaintFlagsDrawFilter;import android.graphics.Path;import android.graphics.Region;import android.util.AttributeSet;import android.widget.ImageView;/** * Created by Mr.li on 2017/12/20. */public class CircleImageView extends ImageView { Path path; public PaintFlagsDrawFilter mPaintFlagsDrawFilter;// 毛边过滤 Paint paint; public CircleImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub init(); } public CircleImageView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub init(); } public CircleImageView(Context context) { super(context); // TODO Auto-generated constructor stub init(); } public void init(){ mPaintFlagsDrawFilter = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG); paint = new Paint(); paint.setAntiAlias(true); paint.setFilterBitmap(true); paint.setColor(Color.WHITE); } @Override protected void onDraw(Canvas cns) { // TODO Auto-generated method stub float h = getMeasuredHeight()- 2.0f; float w = getMeasuredWidth()- 2.0f; if (path == null) { path = new Path(); path.addCircle( w/2.0f , h/2.0f , (float) Math.min(w/2.0f, (h / 2.0)) , Path.Direction.CCW); path.close(); } cns.drawCircle(w/2.0f, h/2.0f, Math.min(w/2.0f, h / 2.0f) + 2.0f, paint); int saveCount = cns.getSaveCount(); cns.save(); cns.setDrawFilter(mPaintFlagsDrawFilter); cns.clipPath(path,Region.Op.REPLACE); cns.setDrawFilter(mPaintFlagsDrawFilter); cns.drawColor(Color.WHITE); super.onDraw(cns); cns.restoreToCount(saveCount); }}
其次在你想实现我们圆形图标的布局里,这次我们不在使用ImageViiew了 而是直接调用我们的CircleImageView java类
<com.example.mrli.fanggouwuche.CircleImageView可以直接得圆形图标,简单方便,具体代码如下:
<LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="3"> <com.example.mrli.fanggouwuche.CircleImageView android:src="@drawable/picturela" android:layout_height="match_parent" android:layout_width="match_parent"/> </LinearLayout>
阅读全文
0 0
- 总结 2017-12-19
- 总结 2017-12-12
- 总结-2017/10/19
- 总结-2017/10/12
- 总结-2017/11/12
- 总结 2017-12-07
- 总结-2017/12/7
- 总结 2017-12-08
- 总结-2017/12/10
- 总结 2017-12-11
- 总结 2017-12-13
- 总结 2017-12-14
- 总结-2017/12/15
- 总结 2017-12-15
- 总结-2017/12/20
- 总结 2017-12-21
- 总结 2017-12-22
- 2017/6/19日常总结
- 水滴直播产品经理的反思
- doubango编译过程中遇到的:tdav_producer_screencast_ddraw.cpp(234) : error C2039: 'SetCooperativeLevel' : is n
- leetcode python解答版本
- js里获取PHP数组并使用
- Flow2000 v6.2 1CD(最好的高聚物挤出过程分析软件)\
- 总结 2017-12-19
- Java并发编程:CompletionService
- 【web】javascript基础巩固(五)——事件&表单
- 【C++】C++用new和不用new创建类对象区别
- iOS 开发者中的公司账号与个人账号之间有什么区别
- springboot学习笔记(二)日志配置
- Go 开发WEB服务之hello world
- android gridview 选择变色 再点击还原 并支持多选。记录贴 01
- 使用Cookie有序非重复记录已浏览商品的原理以及实现