![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android自定义控件
文章平均质量分 61
学习中呢
一个本科小生的匍匐前进之路
展开
-
自定义view之构造方法
Android自定义view的三个构造函数理解public class MyView extends View { public MyView(Context context) { this(context, null); } public MyView(Context context, AttributeSet attrs) { th原创 2017-05-30 14:43:13 · 702 阅读 · 0 评论 -
PathMeasure
顾名思义,PathMeasure是一个用来测量Path的类,主要有以下方法: 构造方法 方法名 释义 PathMeasure() 创建一个空的PathMeasure PathMeasure(Path path, boolean forceClosed) 创建 PathMeasure 并关联一个指定的Path(Path需要已经创建完成)。公共方法 返回值 方法名原创 2017-08-28 20:26:32 · 261 阅读 · 0 评论 -
Canvas
Canvas画布的正确理解 往常我理解的是我们画的东西就存在一张画布上,那么我们rotate以后为什么原来画上的东西还在原位置显示上。原来当Canvas执行drawXXX的时候就会新建一个画布图层,类似于我们photoshop中的图层概念。 当我们旋转后,新建一个图层会沿用旋转后的坐标介绍一些不易理解的方法 canvas.drawLines(pts,offset,count,paint原创 2017-08-28 14:07:07 · 413 阅读 · 0 评论 -
Path
Path工具类:用来记录线条的轨迹路径。 canvas.draw(path,paint); 贝塞尔曲线 手机充电等等效果 现实生活当中:任何的曲线和曲面都可以用贝塞尔公式来解决。比如:iPhone 2.5D屏幕曲面;奥迪A9流线型; Path工具类 Path path = new Path(); //二阶贝塞尔 path.quadTo(x1,y1,x2,y2); //三阶贝塞尔原创 2017-08-28 15:04:39 · 641 阅读 · 0 评论 -
Behavior
behavior能实现viewgroup中各个view事件的相互监听。已经实现的behavior有CoordinatorLayout.Behavior/FloatingActionButton.Behavior。 继承CoordinatorLayout.Behavior可以帮助我们实现CoordinatorLayout中各子view的相互监听,那么相应的住布局也要为CoordinatorLayou原创 2017-09-05 13:12:36 · 414 阅读 · 0 评论 -
ViewDragHelper讲解
帮我们实现各种类型的复杂手势操作。其实例通过静态工厂创建 ViewDragHelper一般用在一个自定义ViewGroup的内部 初始化操作 private ViewDragHelper mDrragHelper; public SlideViewGroup(@NonNull Context context) { this(context,null); }原创 2017-09-04 18:48:21 · 260 阅读 · 1 评论 -
view的绘制流程
Measure当我们启动一个应用时,会启动一个主Activity,Android会根据我们的Activity布局进行绘制,绘制从ViewRootImpl类中看到performTraversals方法开始private void performTraversals(){ int childWidthMeasureSpec = getRootMeasureSpec(mWidth,lp.width原创 2017-08-22 11:54:18 · 240 阅读 · 0 评论 -
ProgressBar改变成我们想要的加载动画
在drawable写背景<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0" android:toDegrees="360" android:pivotX="50%" android:pivotY="50%"> <shape原创 2017-08-17 21:32:23 · 2184 阅读 · 0 评论 -
简单实现侧滑菜单
1.自定义viewgroup继承horizonScrollviewpublic class MySliding extends HorizontalScrollView { private int pwidth; LinearLayout par; boolean once=true; ViewGroup chil1;//左边菜单 ViewGroup chil原创 2017-06-03 16:31:59 · 493 阅读 · 0 评论 -
自定义会动的圆形进度条
在values下新建attrs.xml 自定义viewpublic class MyCircleProgress extends View { private int maxProgress=100;//进度的最大值 private int currentProgress=0;//当前进原创 2017-06-02 13:43:31 · 289 阅读 · 0 评论 -
自定义listview实现类似通讯录的分组
//适配器public class SortAdapter extends BaseAdapter implements SectionIndexer { private List list=null; private Context mContext; public SortAdapter(Context context,List list){ this原创 2017-05-30 15:05:54 · 880 阅读 · 0 评论 -
详解嵌套ListView、ScrollView布局显示不全的问题
在项目开发中,可能经常遇到嵌套ListView、ScrollView,GridView的问题,百度一搜,都是现成的代码,而且都是一样的,就是重写onMeasure方法,但是为什么要那么写,估计就没多少人知道了,这里进行深入的剖析一下下,重点看onMeasure方法,代码如下:public class CityGridView extends GridView { public City原创 2017-05-30 15:14:21 · 301 阅读 · 0 评论 -
自定义控件一带清除和抖动功能的EditText
自定义控件一带清除和抖动功能的EditText源码如下:public class ClearEditText extends EditText implements View.OnFocusChangeListener,TextWatcher { / * 删除按钮的引用 */ private Drawable mClearDrawable;原创 2017-05-30 15:18:19 · 267 阅读 · 0 评论 -
微信联系人列表点击侧边栏首字母定位到相应联系人列表的实现方法
默认创建好联系人显示列表;1,在主页activity_main添加新的listview; Android:divider="@null" android:id="@+id/lv_sections" android:layout_width="18dp" android:layout_height="wrap_con原创 2017-05-30 15:20:37 · 1533 阅读 · 0 评论 -
类似通讯录侧边滑动筛选的sidebar
public class SideBar extends View { // 触摸事件 private OnTouchingLetterChangedListener onTouchingLetterChangedListener; private Context context; private int choose=-1;//字体选中状态 private原创 2017-05-30 14:54:05 · 715 阅读 · 0 评论 -
打造绚丽平行空间引导页
先上图,动图太大传不上来,在项目中有动图点击查看动图首先解释下工程的主要部分。首先谷歌的百分比布局做了部分修改,因为我设置的宽高都是相对于屏幕的宽度,而谷歌的百分比布局不能实现,只需要修改一部分代码就可以实现。下面贴出修改的部分代码public static class PercentLayoutInfo { private enum BASEMO原创 2017-09-14 12:15:18 · 597 阅读 · 0 评论