自定义view
文章平均质量分 65
Mars-xq
好记性不如烂笔头。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android通过代码实现多语言切换、createConfigurationContext、attachBaseContext、getResources、updateConfiguration
【代码】Android通过代码实现多语言切换、createConfigurationContext、attachBaseContext、getResources、updateConfiguration。原创 2022-11-04 14:40:03 · 4827 阅读 · 0 评论 -
Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件
【代码】Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件。原创 2022-08-26 16:50:28 · 1888 阅读 · 0 评论 -
WindowManager 简单悬浮框的实现
permission denied for window type 2003WindowManager(窗口管理服务)10.7 WindowManager(窗口管理服务)原创 2022-06-10 12:24:02 · 383 阅读 · 1 评论 -
android 携程买票的起始点交换位置实现
效果图:点击交换位置按钮,北京和深圳布局交换位置。xml布局文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent...原创 2018-06-07 09:24:04 · 996 阅读 · 0 评论 -
点击EditText外隐藏输入框
推荐阅读:Android 判断当前点击位置是否在圆的内部 方法一: 重写dispatchTouchEvent,判断点击EditText之外则隐藏输入框。@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) {...原创 2018-05-31 10:43:25 · 673 阅读 · 0 评论 -
camera、Matrix概念
cameracamera的坐标系是左手坐标系。伸出左手,让拇指和食指成L形,大拇指向右,食指向上,中指指向前方,这样我们就建立了一个左手坐标系,拇指,食指,中指的指向分别代表了x,y,z轴的正方向。如下图所示:Camera的坐标系是左手坐标系。当手机平整的放在桌面上,X轴是手机的水平方向,Y轴是手机的竖直方向,Z轴是垂直于手机向里的那个方向。下面是一些细节点: 1,camera位于坐标点(0,0)原创 2017-08-17 14:41:48 · 1629 阅读 · 0 评论 -
android - 3D旋转
参考: camera、Matrix概念 Matrix的set,pre,post调用顺序常用的API如下: rotateX(float degree) 绕着x轴旋转degree个度数 rotateY(float degree) 绕着y轴旋转degree个度数 rotateZ(float degree) 绕着z轴旋转degree个度数 translat原创 2017-08-18 18:35:42 · 1020 阅读 · 0 评论 -
Matrix的set,pre,post调用顺序
参考:Matrix的set,pre,post调用顺序Matrix主要用于对平面进行平移(Translate),缩放(Scale),旋转(Rotate)以及斜切(Skew)操作。 为简化矩阵变换,Android封装了一系列方法来进行矩阵变换;其中包括: set系列方法:setTranslate,setScale,setRotate,setSkew;设置,会覆盖之前的参数。 pre系列方法:pre原创 2017-08-17 11:59:25 · 726 阅读 · 0 评论 -
Android-LayoutInflater.inflate
获得 LayoutInflater 实例的三种方式//获得 LayoutInflater 实例的三种方式://三种方式本质是相同的,最终本质是都是调用的Context.getSystemService()。 LayoutInflater inflater1 = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFL原创 2017-05-09 16:24:56 · 327 阅读 · 0 评论 -
setStrokeWidth对自定义view的影响
自定义view:public class MyView extends View { private static final int DEFAULT_WIDTH = 100; private static final int DEFAULT_HEIGHT = 100; private Paint rectPaint; private Rect rect; ...原创 2018-06-15 15:31:34 · 952 阅读 · 0 评论 -
ViewConfiguration
参考:ViewConfiguration解析ViewConfiguration 用法简介:ViewConfiguration这个类主要定义了UI中所使用到的标准常量,像超时、尺寸、距离,如果我们需要得到这些常量的数据,我们就可以通过这个类来获取,具体方法如下:1、获取ViewConfiguration对象,由于ViewConfiguration的构造方法为私有的,只能通过这个静态方法来...原创 2018-11-14 14:03:20 · 826 阅读 · 0 评论 -
自定义view--进度
效果图:自定义view:import android.animation.FloatEvaluator;import android.animation.ValueAnimator;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import...原创 2018-06-06 16:16:10 · 235 阅读 · 0 评论 -
onMeasure与onSizeChanged获取尺寸区别
自定义view如下:public class MyView extends View { private static final int DEFAULT_WIDTH = 100; private static final int DEFAULT_HEIGHT = 100; private Paint paint; private Rect rect; ...原创 2018-06-06 11:09:19 · 3341 阅读 · 0 评论 -
view相关类和方法
requestDisallowInterceptTouchEventgetParent().requestDisallowInterceptTouchEvent(true); //请求父级view不要拦截事件@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(saved原创 2017-02-06 14:06:00 · 659 阅读 · 0 评论 -
自定义view的构造方法和样式主题
//java代码中使用view时调用public Button(Context context) { this(context, null);}//XML文件中使用view时调用,用于layout文件实例化,会把XML内的参数通过AttributeSet带入到View内。第二个参数中就包含自定义的属性。public Button(Context context, AttributeSe转载 2017-02-10 09:40:55 · 993 阅读 · 0 评论 -
canvas和paint
一个画图需要四大基本要素: 1、一个用来保存像素的Bitmap; 2、一个Canvas画布,绘制Bitmap操作; 3、绘制的东西 4、绘制的画笔Paint(颜色和样式)Canvas大致可以分为三类方法: 1. save、restore 等与层的保存和回滚相关的方法; 2. scale、rotate、clipXXX 等对画布进行操作的方法; 3. drawXXX 等一系列绘画相关的方法原创 2017-02-10 16:11:45 · 686 阅读 · 0 评论 -
LayoutAnimation和overridePendingTransition
一、LayoutAnimation LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果,比如listview,recyclerview的item进入动画,可以在XML文件中设置,亦可以在Java代码中设置。XML中使用1、在res.anim.slide_right.xml定义一个动画<?xml version="1原创 2017-02-13 15:40:04 · 422 阅读 · 0 评论 -
Scroller类源码解析
scroller源码原创 2017-02-04 15:00:02 · 484 阅读 · 0 评论 -
onClick、onTouch、onTouchEvent的调用
自定义button@SuppressLint("AppCompatCustomView")public class MyButton extends Button { public MyButton(Context context) { super(context); } public MyButton(Context context, AttributeSe原创 2017-08-22 16:21:16 · 1355 阅读 · 2 评论 -
Android:仿苹果按钮
res/attrs:<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="SwitchButton"> <attr name="sb_shadow_radius" format="reference|dimension"/> <attr name="sb_shad原创 2017-08-22 17:21:18 · 950 阅读 · 0 评论 -
android-球随手动
核心知识点:根据View.OnTouchListener的坐标监听,然后设置新坐标,并View.invalidate()重绘界面。View.invalidate();//刷新视图(相当于onDraw方法)View.OnTouchListener//监听down、move、up事件及坐标示例一:拖动自定义的小球布局:<?xml version="1.0" encoding="utf-8"?><Lin原创 2017-07-19 11:48:27 · 621 阅读 · 0 评论 -
自定义view - 画弧线填充描边与使用中心
设置画笔样式的时候是这样的:mPaint.setStyle(Paint.Style.FILL);//设置画笔模式为填充实际上画笔有三种模式,如下:STROKE //描边FILL //填充FILL_AND_STROKE //描边加填充Paint paint = new Paint();paint.setColor(Co原创 2017-02-07 09:30:15 · 2615 阅读 · 0 评论 -
getWidth()与getMeasuredWidth()的区别
一般在自定义控件的时候getMeasuredWidth/getMeasuredHeight它的赋值在View的setMeasuredDimension中,所以有时可以在onMeasure方法中看到利用getMeasuredWidth/getMeasuredHeight初始化别的参数。而getWidth/getHeight一直在onLayout完成后才会被赋值。一般情况下,如果都完成了赋值,两者值是相原创 2017-02-07 10:25:48 · 2142 阅读 · 0 评论 -
android : 属性动画
//属性动画public final class ObjectAnimator extends ValueAnimator {...}public class ValueAnimator extends Animator {...}public final class AnimatorSet extends Animator {...}//补间动画public class AnimationSe原创 2017-02-09 12:01:28 · 3346 阅读 · 1 评论 -
自定义view学习指南
自定义View主要掌握以下四块内容: 1. 绘制机制:掌握onMeasure,onLayout,onDraw及相关类的使用。 公共技术点之 View 绘制流程 Android View的绘制流程 郭霖的Android视图绘制流程完全解析,带你一步步深入了解View(二) 2. 事件传递机制:掌握dispathTouchEvent(),onInterceptEvent原创 2017-01-16 15:05:39 · 744 阅读 · 0 评论 -
事件传递
事件处理原创 2017-02-06 12:02:24 · 360 阅读 · 0 评论
分享