1.图片 把一张JPG图片改名为image.jpg,然后拷贝到项目的res-drawable中. 2.activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/imageid" android:layout_width="fill_parent" android:layout_heig…
首先看下我们想要实现的效果如下图(qq聊天中发送图片时的效果): 再看下图我们实现的效果: 实现原理很简单,首先我们上传图片时需要一个进度值progress,这个不管是自己写的上传的方法还是使用第三方开源库,其次,需要自定义一个View并重写onDraw方法,此例中的进度是开启了一个线程,然后模仿进度递增,然后将进度值通过自定义View调用一个自定义方法传进自定义View并根据进度进行重绘. 绘制分为三部分: 1.绘制矩形(图片面积)上半部分阴影区: 2.绘制矩形(图片面积)下半部分非阴影区:…
我司主要从事工业物联网领域软件的开发,现有个需求,在外废品处理时需要对产品的不良位置进行标记,点选图片实现图片网格的着色功能. 需求是通过自定义view来实现,实现思路如下: 首先将点击的小方格对象实例化,创建小方格PointBean对象 /** * 图片上的点 */ public class PointBean { private int x_max; private int x_mix; private int y_min; private int y_max; private String…
1,现在有这样一个需求,实现显示随机随机数可能在代码中直接很简单的就实现了,但是现在我们直接自定义View来实现这个效果,那么我们来分析一波吧,我们允许开发者自己设置这个textview的大小,颜色,和初始四位随机数的文字,那么我们需要提供自定义属性,好吧,首先把自定义属性的简单使用介绍一下吧: 首先在res/values文件夹下建利attrs.xml文件,由于这次我们功能决定我们要提供三个自定义属性,分别是textTitle String类型的,textColor是color类型的,textS…
1,昨天刚看了hongyang大神推荐的自定义时钟效果(传动门:http://www.jianshu.com/users/a45d19d680af/),效果还是不错的,自己又在github上找了找,发现了修复了bug的源码,然后就分析分析,先看一下效果: 思路分析一波,由于界面是在不停的绘制的,说以在View和SurfaceView之间我们要比较比较: View一般用于绘制静态页面或者界面元素跟随用户的操作(点击.拖拽等)而被动的改变位置.大小等 SurfaceView一般用于无需用户操作,界面…
1.背景 现在app中,图片预览功能肯定是少不了的,用户基本已经形成条件反射,看到小图,点击看大图,看到大图两个手指开始进行放大,放大后,开始移动到指定部位~~~ 我相信看图的整个步骤,大家或者说用户应该不希望被打断把~~~“我擦,竟然不能放大,什么玩意,卸了~~“ , "我擦,竟然不能移动,留有何用,卸了~~". 哈~所以对于图片的预览,一来,我们要让用户爽:二来,我们作为开发者,也得知道如何实现~~~ 2.概述 想要做到图片支持多点触控,自由的进行缩放.平移,需要了解几个知识点:M…
灵活使用 Path ,可以画出复杂图形,就像美术生在画板上画复杂图形一样.程序员也可以用代码实现. 1.样板图片 这个是个温度计,它是静态的,温度值是动态变化的,所以要自定义个view.动态显示值,温度过高.过低时有警示功能. 2.代码 https://github.com/f9q/tempView 3.Path类的关键api 3.1 绝对绘制系列 void moveTo(float x, float y) 将画笔移动到x,y void lineTo(float x, float y) 连接当前…
1.在onMeasure中测量整个View的宽和高后,设置宽高 2.获取我们res的图片资源后,在ondraw方法中进行绘制圆形图片 3.通过Handler发送Runnable在主线程中更新UI,达到旋转效果(如果只想做圆形头像的话,这步可以去掉) 4.在布局中使用我们的View 1.初始化变量信息 2.测量宽和高 3.获取资源后,绘制圆形图片 4.通过Handler发送Runnable更新旋转效果 5.布局文件中使用 6.整个View的源码…
Android 自定义圆形进度条总结 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 微信公众号:牙锅子 源码:CircleProgress 文中如有纰漏,欢迎大家留言指出. 最近撸了一个圆形进度条的开源项目,算是第一次完完整整的使用自定义 View .在此对项目开发思路做个小结,欢迎大家 Star 和 Fork 该项目总共实现了三种圆形进度条效果 CircleProgress:圆形进度条,可以实现仿 QQ 健康计步器的效果,支持配置进度条背景色.宽度.起始角度,支持进度条渐…
基础篇 安卓自定义View基础 - 坐标系 安卓自定义View基础 - 角度弧度 安卓自定义View基础 - 颜色 进阶篇 安卓自定义View进阶 - 分类和流程 安卓自定义View进阶 - Canvas之绘制图形 安卓自定义View进阶 - Canvas之画布操作 安卓自定义View进阶 - Canvas之图片文字 安卓自定义View进阶 - Path之基本操作 安卓自定义View进阶 - Path之贝塞尔曲线 安卓自定义View进阶 - Path完结篇 安卓自定义View进阶 - PathM…
绘制基础 参考:HenCoder Android 开发进阶: 自定义 View 1-1 绘制基础 Paint详解 参考:HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解 关于颜色的三层设置 直接设置颜色的 API 用来给图形和文字设置颜色: setColorFilter() 用来基于颜色进行过滤处理: setXfermode() 用来处理源图像和 View 已有内容的关系. 颜色渐变用Shader,用图像来填充用BitmapShader,颜色与图像的叠加用…
Android绘图机制(二)--自定义View绘制形, 圆形, 三角形, 扇形, 椭圆, 曲线,文字和图片的坐标讲解 我们要想画好一些炫酷的View,首先我们得知道怎么去画一些基础的图案,比如矩形,圆形,三角形,多边形等-. 新建一个项目 然后我们创建一个listview,每个图案一个Activity,这样看起来是不是很顺眼 <ListView android:id="@+id/listview" android:layout_width="wrap_content&q…
文章目录 一 View 二 Paint 2.1 颜色处理 2.2 文字处理 2.3 特殊处理 三 Canvas 3.1 界面绘制 3.2 范围裁切 3.3 集合变换 四 Path 4.1 添加图形 4.3 画线(直线或曲线) 4.3 辅助设置和计算 文章源码 DrawView WaveView RippleLayout LabelImageView 本文还提供了三个综合性的完整实例来辅助理解. View绘制 - 图片标签效果实现 Canvas绘图 - 水面涟漪效果实现 二阶贝塞尔曲线的应用 -…
一.概述 Android实现圆角矩形,圆形或者椭圆等图形,一般主要是个自定义View加上使用Xfermode实现的.实现圆角图片的方法其实不少,常见的就是利用Xfermode,Shader.本文直接继承ImageView,使用BitmapShader方法来实现圆形.圆角和椭圆的绘制,等大家看我本文的方法后,其他的类似形状也就都能举一反三来来画出来了. 二.效果图: 三.BitmapShader简介 BitmapShader是Shader的子类,可以通过Paint.setShader(Shader…
MainActivity如下: import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.app.Activity; import android.graphics.Matrix; /** * Demo描述:…
先看效果(原谅我的渣像素),进度的刻度.宽度.颜色可以随意设定: [项目github地址: https://github.com/zhangke3016/CircleLoading] 实现起来并不难,通过本文,我们可以学到: 1.自定义属性的使用. 2.shader的使用 3.自定义View中对onmeasure的处理 4.增深对PathMeasure工具类的了解 5.最主要的是对自定义View有个比较清晰的思路认识 一.原理介绍 做这样一个进度效果,我们可以拆分如下步骤来实现: 1.从外部圆环…
在很多APP当中,圆形的图片是必不可少的元素,美观大方.本文将带领读者去实现一个圆形图片自定View,力求只用一个Java类来完成这件事情. 一.先上效果图 二.实现思路 在定义View 的onMeasure()方法里设置View的宽高相等,应该取宽高中的最小值. 在自定义View的onDraw()里面使用画笔paint结合BitmapShaper画出一个圆形区域. 上述两步已经可以实现一个圆形图片,但是如果图片大于View的设定的宽高,则只会绘制左上角的局域,内容显示不完全(如下图).因此,还…
前言 这已经是Android UI 绘制过程浅析系列文章的第五篇了,不出意外的话也是最后一篇.再次声明一下,这一系列文章,是我在拜读了csdn大牛郭霖的博客文章<带你一步步深入了解View>后进行的实践. 前面依次了解了inflate的过程,以及绘制View的三个步骤:measure, layout, draw.这一次来亲身实践一下,通过自定义View来加深对这几个过程的理解. 自定义View的分类 根据实现方式,自定义View可以分为以下3种类型. 自绘控件.View的绘制代码(onDraw…
自定义View的方法 对现有控件进行扩展 通过组合来实现新的控件 重写View来实现全新的控件 本篇文章主要讲对现有控件的扩展 1.圆形图片控件 自定义View,对ImageView的扩展 重写onDraw方法,绘制图片 图片需要进行修改,让其圆形方式显示 主要难点在于圆形图片的绘制,如果我们知道PorterDuffXfermode,其实难度就不大,里面有一种模式是显示相交模式,我们下面的代码就是根据这个模式,绘画出圆形图片的 @Override protected void onDraw(Ca…
前两天想实现一个圆角图片的效果,通过网络搜索后找到一些答案.这里自己再记录一下,加深一下自己的认识和知识理解. 实现圆角图片的思路是自定义一个ImageView,然后通过Ondraw()重绘的功能,将drawable和一个圆形进行重叠绘制,这样就可以达到圆角的效果了. 下面开始具体实现圆角图片的过程. 第一步:写自定义属性文件 首先我们需要定义一个属性.在values目录下面新建一个xml文件,这个文件用来自定义一些属性,这样我们就可以写出自己的控件了. <?xml version="1.…
要实现这两种效果,需要自定义View,并且有两种实现方式.   第一种: public class BitmapShaders extends View {     private  BitmapShader bitmapShader = null;     private Bitmap bitmap = null;     private Paint paint = null;     private ShapeDrawable shapeDrawable = null;     privat…
Android的UI设计可以说是决定一个app质量的关键因素,因为人们在使用app的时候,最先映入眼帘的就是app的界面了,一个美观.充实的界面能够给用户带来非常好的体验,会在用户心中留下好的印象. 对于UI设计,Android原生的控件加上一些开源库的使用,已经能够满足大部分的UI需求,但是,某些比较新颖.花哨的控件效果,我们只能通过自定义View来实现,那么,从该篇博客开始,我将记录关于Android自定义View的学习内容,并将其整理呈现给大家. 我们来实现一个优酷菜单案例,在案例中会涉及…
这是自定义View系列的第二篇博客,我们继续来学习关于自定义View的知识. 今天我们来实现一下广告条案例. 我们要实现的是这样的一个效果. 要想实现这样的效果,我们可以借助ViewPager控件,然后加上自定义的一些控件即可完成.那么现在就开始吧. 新建一个android项目. 修改activity_main.xml文件. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:a…
Android精选源码 一个爬取美女图片的app Android高仿抖音 android一个可以上拉下滑的Ui效果 android用shape方式实现样式源码 一款Android上的新浪微博第三方轻量级客户端 android仿支付宝首页的头部伸缩动画源码 [原创]高仿饿了么3.0版本点餐页面 自定义View和属性动画实现指示点效果 android仿人人车可伸缩效果源码 android一个简单的天气预报项目源码 Android优质博客 Android地址选择器 类似于京东的地址选择 简介最近东西写…
关于Fresco加载图片的处理,例如旋转.裁剪切割图片,在官方文档也都有提到,只是感觉写的不太详细,正好最近项目里有类似需求,所以分享一些使用小tip,后面的朋友就不用再走弯路浪费时间了.(测试图片分辨率1200*800) 原图: 裁剪图片实现 旋转图片 /** * 旋转图片 * * @param rotate ,例如:RotationOptions.ROTATE_90 */ private void rotate(SimpleDraweeView img, int rotate) { Rota…
Android中View的绘制过程 onMeasure方法简述 附有自定义View例子 Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布局的根节点开始,从根节点开始测量和绘制整个layout tree. 每一个ViewGroup 负责要求它的每一个孩子被绘制,每一个View负责绘制自己. 因为整个树是按顺序遍历的,所以父节点会先被绘制,而兄弟节点…
Android中View的绘制过程 当Activity获得焦点时,它将被要求绘制自己的布局,Android framework将会处理绘制过程,Activity只需提供它的布局的根节点. 绘制过程从布局的根节点开始,从根节点开始测量和绘制整个layout tree. 每一个ViewGroup 负责要求它的每一个孩子被绘制,每一个View负责绘制自己. 因为整个树是按顺序遍历的,所以父节点会先被绘制,而兄弟节点会按照它们在树中出现的顺序被绘制. 绘制是一个两遍(two pass)的过程:一个mea…
每天我们都会使用很多的应用程序,尽管他们有不同的约定,但大多数应用的设计是非常相似的.这就是为什么许多客户要求使用一些其他应用程序没有的设计,使得应用程序显得独特和不同. 如果功能布局要求非常定制化,已经不能由Android内置的View创建 -这时候就需要使用自定义View了.而这意味着在大多数情况下,我们将需要相当长的时间来完成它.但这并不意味着我们不应该这样做,因为实现它是非常令人兴奋和有趣的. 我最近面临了类似的情况:我的任务是使用ViewPager实现Android应用引导页.不同于i…
目标:实现Android中的自定义View,为理清楚Android中的View绘制流程“铺路”. 想法很简单:从一个简单例子着手开始编写自定义View,对ViewGroup.View类中与绘制View相关的方法解析,并最终弄清楚View的绘制流程. View类代表用户界面组件的基本构建块:View在屏幕上占据一个矩形区域,并负责绘制和事件处理:View是用于创建交互式用户界面组件(按钮.文本等)的基础类. ViewGroup是View的子类,是所有布局的父类,是一个可以包含其他View或者Vie…
在 Android 自定义View 里面,介绍了自定义的View的基本概念.同时在 Android 控件架构及View.ViewGroup的测量 里面介绍了 Android 的坐标系 View.ViewGroup的测量方面的内容. 本文重点讲的是自定义View绘制的相关技术. 重点: 1. 掌握重写绘制方法,主要涉及到的方法是 onDraw(). -- 本文说明 2. 掌握Canvas 的使用,主要是掌握Canvas的绘制类方法:drawXXX() 涉及的关键绘制对象 Paint.-- 本文说明…