![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 自定义view
匆忙拥挤repeat
倦鸟就此散 余花怎不乱 物是人已非 落寞
红尘难看破 美梦成真否 镜花水月尔 迷惘
展开
-
Android 获取View的Bitmap
fun createBitmapFromView(view: View): Bitmap? { val bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888) val canvas = Canvas(bitmap) canvas.drawColor(Color.WHITE) view.draw(canvas) return bitmap }原创 2021-12-03 11:08:58 · 772 阅读 · 0 评论 -
Android 自定义属性重复:../attrs.xml: Error: Found item Attr/rightTextColor more than one time
自定义属性时,对于不同的 属性域,采用了相同的属性名,会引发错误:../attrs.xml: Error: Found item Attr/rightTextColor more than one time<declare-styleable name="s1"> <attr name="rightTextColor" format="color"/></d...原创 2019-10-29 11:51:45 · 1797 阅读 · 0 评论 -
Android 自定义ViewGroup 实现流式布局
像上图,宽度不足自动换行。FlowLayout/** * author : stone * email : aa86799@163.com * time : 15/8/4 15 08 */public class FlowLayout extends ViewGroup { public FlowLayout(Context context) {原创 2015-08-05 14:42:26 · 1005 阅读 · 0 评论 -
Android 自定义卫星式弧形菜单
import android.content.Context;import android.content.res.TypedArray;import android.util.AttributeSet;import android.util.TypedValue;import android.view.View;import android.view.ViewGroup;import原创 2015-12-13 16:12:42 · 5208 阅读 · 0 评论 -
Android 自定义九宫格锁
代码不多,注释详尽,也就不多说了,上图和代码package com.stone.ninegridlock.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;im原创 2015-12-26 11:23:44 · 1681 阅读 · 0 评论 -
Android 仿美女撕衣服效果
因为我写demo的时候不是用一整屏幕来放置当前图片View的,且资源图也不小,所以用到了bitmap缩放代码注释比较详尽,直接上了package com.stone.guaguaka.view;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitma原创 2016-01-28 15:17:15 · 2731 阅读 · 0 评论 -
Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
本文的原理想法,出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17718579)具体的原理描述,可以去看夏神的这个博文原创 2016-04-28 12:22:23 · 3600 阅读 · 2 评论 -
Android 自定义拼接图片,点击小图位置时,绘制在上层
这里将五张矩形图拼在同一图层,并使用paint.setXfermode,显示点击区域上的图层备注:如果使用圆形图片素材(即圆形外是透明背景),那么需要用圆形的碰撞检测。package com.stone.guaguaka.view;import android.content.Context;import android.graphics.Bitmap;im原创 2016-05-04 21:26:31 · 2060 阅读 · 1 评论 -
Android 绘制太极图
1. 分别绘制左黑右白两个半圆, 半径为r2. 再绘制上黑下白两个小圆, 半径为1/4 r3. 最后绘制上白下黑两个小圆, 半径为 1/16 r @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int w = Math.min(getWi原创 2016-07-08 13:32:59 · 1012 阅读 · 0 评论 -
Android 自定义view 折线翻页原理笔记
看了Aige的 Android翻页效果原理实现之引入折线原创 2016-09-20 17:49:33 · 4447 阅读 · 0 评论 -
Android 自定义View 实现刮刮卡效果
主要思想:将一个view设计成多层:背景层,含中奖信息等;遮盖层,用于刮奖,使用关联一个Bitmap的Canvas在该Bitmap上,使用它的canvas.drawPath的api来处理 手势滑动(类似刮奖的动作)使用paint.setXfermode 来进行消除手势滑动区域/** * author : stone * email : aa8679原创 2015-07-28 16:32:43 · 1765 阅读 · 2 评论 -
Android 自定义圆环进度条 自适应显示百分比
package com.stone.circleprogressbar.view;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphic原创 2015-09-14 14:06:35 · 2541 阅读 · 0 评论 -
Android 判断点是否在Path中(含不规则形状的Path)
RectF bounds = new RectF();path.computeBounds(bounds, true);Region region = new Region();region.setPath(path, new Region((int)bounds.left, (int)bounds.top,(int)bounds.right, (int)bounds.bottom原创 2016-10-12 20:46:08 · 6580 阅读 · 0 评论 -
Android 自定义View 使用Kotlin编写雷达扫描效果
效果图 使用SweepGradient作为paint的shader,用于绘制 paint的color也会影响shader 利用handler不断发送消息,不断改变canva.drawArc()中的起始角度 在声明Handler成员属性时,不要声明成handler,因为View中有个方法为public Handler getHander(); 所以kotlin会认为你重写定原创 2017-07-22 14:05:20 · 1081 阅读 · 0 评论 -
Android RecyclerView 实现瀑布流交错效果,并使最后一行子View高度占满RecyclerView
http://www.imooc.com/qadetail/91200 我在这个地址搜索到了,如何监听RecyclerView滑动到底的状态而在实现完瀑布流后,觉得滑动到底部时,最后一行的高度,没有占满外部View,感觉不太好。(真正的瀑布流应该是条目数近乎无穷,可以一直加载更多)既然是瀑布流,那么就选用StaggeredGridLayoutManager。 mRecyclerView.setLa原创 2016-06-15 17:29:09 · 5165 阅读 · 0 评论 -
Android ViewConfiguration配置说明
简介android.view.ViewConfiguration 包含了一些方法和常量,用于设置UI的超时、大小、距离 属性常量都是私有的,通过对应的get方法,获取配置值。 对应的v4兼容类:android.support.v4.view.ViewConfigurationCompat初始化通过静态方法:ViewConfiguration static get(Context conte原创 2017-03-29 18:03:26 · 2448 阅读 · 0 评论 -
Android 自定义View 新年烟花、横幅动画
新年了,项目中要作个动画,如下效果图:整体要求实现:彩带乱飞,烟花冲天而起,烟花缩放,小鸡换图,小鸡飘移,横幅裁剪、展开等动画效果,全局大量使用了属性动画来实现我在实现过程中,横幅的裁剪计算,捣腾了比较久的时间,初版采用属性动画计算float的一个比率值,来配合每一帧的裁剪绘制,如下代码: private static class RollView extends原创 2017-01-22 18:19:03 · 5353 阅读 · 6 评论 -
Android 一些Api说明
ViewParentbringChildToFront(View child); 把该视图置于其他所有子视图之上,如在FrameLayout中切换被叠放的视图。 ViewManager : updateViewLayout(View view, ViewGroup.LayoutParams params); //更新LayoutParamsView public void原创 2016-05-12 15:19:40 · 4949 阅读 · 0 评论 -
Android 自定义View 仿蚂蚁信用分析(正多边形)
从我的 "慕课-手记" 中搬过来作者: stone86链接:http://www.imooc.com/article/14918来源:慕课网上一篇,我实现了正多边形的绘制,不过是用比较取巧的方式,仅能绘制出多边形,而不知道任意顶点坐标,没法再在顶点外绘制图片、文字...支付宝芝麻信用分-分析中,有个正五边形,各顶点外还有图片与文字,想绘制这么一个东西就需要知道各端点的坐标...原创 2016-12-13 11:09:46 · 1934 阅读 · 0 评论 -
Android 自定义View 绘制正N边形
从我的 "慕课-手记" 中搬过来 作者: stone86 链接:http://www.imooc.com/article/14599来源:慕课网支付宝芝麻信用分-分析中,有个正五边形,刚刚有空试着做了下效果图:分析图:实现原理、步骤:已知半径为R,圆心点O(a,b),点A(a, c=b-R), OA=OB=R,圆心角O的度数原创 2016-12-13 10:53:02 · 2009 阅读 · 0 评论 -
Android 自定义View 横向翻页
原理见:Android翻页效果原理实现之翻页的尝试package com.stone.turnpage.view;import android.content.Context;import android.content.res.Configuration;import android.graphics.Bitmap;import android.graphics原创 2016-11-03 12:29:39 · 1996 阅读 · 0 评论 -
Android 自定义View 实现表盘效果
看一哥们做了这个效果,我也来凑下热闹我的实现:package com.stone.clock.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;im原创 2016-11-07 20:36:37 · 2729 阅读 · 0 评论 -
Android 底部滑上滑下动画的Dialog及它的WindowManager.LayoutParams设置
/** * @Description: * @author stone * @email aa86799@163.com */public class MyDialog extends Dialog { private Animation mShowAnim; private Animation mHideAnim; private View mMainLayout原创 2015-11-19 10:02:48 · 3752 阅读 · 0 评论 -
Android 关于重写一个居中的Dialog时,背景图片显示不全的问题。Dialog的style属性介绍
如题,纠结了很久。。最后发现,因为默认的dialog有title的问题,以导致我在其内调用getLocationOnScreen/Window 两个方法时,坐标值特别大,还有就是背景图片底部也显示不全。。public PlacesDialog(Context context, List list) {super(context,R.style.placeDialog);原创 2015-12-10 11:31:10 · 2702 阅读 · 0 评论 -
Android 自定义 斜线进度框 ,雨点式背景
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View;import java.u原创 2015-10-22 15:29:22 · 4150 阅读 · 0 评论 -
Android ViewTreeObserver
监听view的变化的 observerViewTreeObserver viewTreeObserver = imageView.getViewTreeObserver();/*添加绘制前的 监听器 这时,measure、layout都好了 */viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDr原创 2015-06-09 18:37:21 · 1086 阅读 · 0 评论 -
Android 自定义view时,顶层view为ScrollView 注意
int specMode=MeasureSpec.getMode(heightMeasureSpec);int specSize=MeasureSpec.getSize(heightMeasureSpec);顶层view为ScrollView时, 高度的mode都是 MeasureSpec.UNSPECIFIED它只能有一个直接子view,不论高度是否为一个 定值原创 2015-05-28 23:15:27 · 1053 阅读 · 0 评论 -
Android layout、onLayout 一些简要说明
View中:public void layout(int l,int t, int r,int b) { ...onLayout ...}//changed 表示是否有新的位置或尺寸protected void onLayout(boolean changed,int left, int top,原创 2015-02-28 11:41:49 · 2575 阅读 · 0 评论 -
Android 自定义view(二) 如何实现自定义组件
Android 自定义组件(一) 基本实现方式和自定义属性:http://blog.csdn.net/jjwwmlp456/article/details/38728519原创 2014-11-13 11:57:53 · 3555 阅读 · 0 评论 -
Android onMeasure、Measure、measureChild、measureChildren 一些简要说明
在View.java中的定义:public finalvoid measure(int widthMeasureSpec,int heightMeasureSpec){... onMeasure...}protected void onMeasure(int widthMeasureSpec,int heightMeasureSp原创 2015-02-27 11:26:29 · 16912 阅读 · 5 评论 -
Android 自定义水波,touch和move状态下触发 (玩具)
/** * author : stone * email : aa86799@163.com * time : 15/3/2 14 15 */public class WaterWaveViewWithMove extends View { private Wave wave; private List wavesList; private boolean isRunni原创 2015-11-27 15:30:12 · 1893 阅读 · 0 评论 -
Android SurfaceView使用dirty rect刷新
如上图,绘制一个背景图,一个不停旋转的小球/** * author : stone * email : aa86799@163.com * time : 15/12/15 01 08 * 在一张大图中绘制一个小图,并旋转它 */public class MySurfaceView1 extends SurfaceView implements SurfaceHolder.Ca原创 2015-12-20 16:15:18 · 3203 阅读 · 0 评论 -
Android TextView跑马灯一直执行
<com.stone.widget.MarqueeTextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="原创 2015-11-17 11:20:11 · 1172 阅读 · 0 评论 -
Android 自定义View 使用ShapeDrawable加BitmapShader实现图片局部放大效果
一些说明:> BitmapShader中放置的Bitmap是原图的缩放后的> ShapeDrawable的setBounds() 仅仅是设置一块shape的外矩形区,如用英语表示:size-region>ShapeDrawable中图片默认draw的原点为:相对于图片自身的坐标(0,0)> ShapeDrawable如果要对图片进行矩阵变化...原创 2016-12-11 02:35:48 · 2521 阅读 · 0 评论 -
Android View的滚动scroll 、android.widget.Scroller和 属性translationX/Y
在View中:public void computeScroll() { //空实现 }public void scrollTo(int x,int y) {//view的(left,top)滚动到一个点(x,y) if (mScrollX != x ||mScrollY != y) { int oldX =原创 2015-02-28 19:50:09 · 2080 阅读 · 0 评论 -
Android 自定义view(一) 基本实现方式和自定义属性
实现方式:1. 继承自View ,自定义一个View.2.继承自ViewGroup(容器),自定义设置子view的位置、尺寸等,用于组合一些组件,产生一个复合组件3.继承自已有的组件(View型 或 ViewGroup型),用于扩展现有组件的功能自定义类的构造函数: public CustomView2(Context context) {//直接在代码...原创 2014-08-21 16:42:29 · 7601 阅读 · 0 评论 -
Android 自定义View 图片按Path运动和旋转
View:/** * author : stone * email : aa86799@163.com * time : 16/5/29 15 29 */public class EarthPathView extends View { private Path mPath; private Paint mPaint; private Bitmap m原创 2016-07-27 16:31:47 · 8751 阅读 · 0 评论 -
Android Canvas 说明
扇形、圆弧public void drawArc(@NonNull RectF oval, float startAngle, float sweepAngle, boolean useCenter, @NonNull Paint paint);public void drawArc(float left, float top, float right, float bottom, flo原创 2015-05-29 11:02:52 · 3709 阅读 · 0 评论 -
碰撞检测算法:点和矩形碰撞、点和圆形碰撞、矩形碰撞、圆形碰撞
点和矩形碰撞/** * * @param x1 点 * @param y1 点 * @param x2 矩形view x * @param y2 矩形view y * @param w 矩形view 宽 * @param h 矩形view 高 * @return */ public static boolean isCollsion(int x1,原创 2014-11-01 14:08:58 · 9941 阅读 · 2 评论 -
Android 自定义 按当前view的宽高进行矩形移动内容图
import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Rect;imp原创 2016-04-18 10:56:52 · 1582 阅读 · 0 评论