自定义View-绘制文本
一. 前言画笔的设置会影响到文字的绘制。所以,我们需要先了解自定义View-Paint。
绘制文本有三类方法:
其中drawText()最常用,drawPosText ()是根据一个个坐标点指定文字位置,drawTextOnPath ()是根据路径绘制。
12345678910111213// 第一类public void drawText (String text, float x, float y, Paint paint)public void drawText (String text, int start, int end, float x, float y, Paint paint)public void drawText (CharSequence text, int start, int end, float x, float y, Paint paint)public void drawText (char[] text, int index, int count, float x, float y, Paint paint)// 第二类public void dra ...
Android随笔-应用上架
一. 前言1. 上架App之前需要给Android应用签名。参考文章:给Android应用签名
2. 了解各个平台Apk上架规则参考文章:android apk上架各大商店规则
二. 上架App到小米商店1. Android Studio上对应用签名打包参考文章:在Mac平台上利用Android Studio对应用签名打包
2. 小米开放平台官网
具体步骤参考官方文档
3. 出现的图片类型问题android studio打包错误
1Error:error: failed to read PNG signature: file does not start with PNG signature
但是,我出现问题的两张图片确实是png后缀的。
但是在Android Studio中打开该图片,虽然该图片后缀的确是png,但是真正的格式还是其他的格式。
我们可以使用http://pic.55.la/转化工具,转换为真正的png格式。
4. 等待审核
游戏应用需要内接sdk啥的,审核不通过。
三. 上架App到酷安市场1. 首先需要申请开发者身份① 我们这里重点关注签名验证
② 为了简单的完 ...
Android项目:连连看
LinkGameAndroid:连连看-Github地址运行效果:
第一次commit-2020-04-15:
项目基础操作。
自定义XLTextView和XLButton类,方便设置其字体样式为指定的字体样式。
成功,失败界面搭建。
文件结构调整。
数据库创建(第三方库:Litepal)。
第二次commit-2020-04-15:
数据库更新操作,使用可视化工具Navicate for Sqlite问题重重。
工具类,dp与px之间的转换。
第三次commit-2020-04-16-00:06:
首页布局。
状态栏的沉浸模式(第三方库:ImmersionBar)。
常量文件以及一些枚举的定义,设置枚举值以及测试。
数据库可视化依赖(第三方库:Android-Debug-Database)。
数据库查询操作(注意DataSupport已经废弃,模型类需要继承于LitePalSupport)。
数据库查询测试。
第四次commit-2020-04-17-19:10:
枚举的完善。
Activity跳转,携带自定义类的数据。针对数据模型类,实现Serializable接 ...
自定义View-Path
一. 前言1.Path的定义路径,即无数个点连起来的线条。
2. Path的作用设置绘制的顺序 或者区域。
3. 应用场景绘制复杂图形(如心形,五角星形);
二. 基础1. 开放路径和闭合路径开放路径时不闭合的。
闭合路径是闭合的。
2. 如何判断点是在图形内还是图形外① 奇偶规则
从任意位置p作一条射线,根据与图形边相交的点数进行判断。
a. 若相交的点数是奇数,则认为p为图形内部点。
b. 若相交的点数是偶数,则认为p为图形外部点。
② 非零环饶数规则
从任意位置p作一条射线,当p点沿射线方向移动时,对在每个方向上穿过射线的边计数。
a. 每当图形的边从右到左穿过射线时,环绕数加1;从左到右时,环绕数减1。
b. 若环绕数为非零,则p为内部点,否则为外部点。
三. 具体使用1. 对象创建12345// 使用Path首先要new一个Path对象// Path的起点默认为坐标为(0,0)Path path = new Path();// 特别注意:建全局Path对象,在onDraw()按需修改;尽量不要在onDraw()方法里new对象// 原因:若View频繁刷新,就会频繁创建对象, ...
自定义View-Paint
一. 前言Paint,顾名思义,就是画,作动词画画,引申为画笔,所以paint就相当于我们平常使用的画笔,而对paint的一些setXXX操作就是日常对画笔粗细,颜色等的操作,但是程序中的paint可能会比生活中的更强大些。
二. 通常的使用方式1. 构造方法1234//无参构造方法Paint mPaint = new Paint();//有参的构造方法一般是设置一些值,我们使用一般情况使用set设置
2. 重置画笔画笔的重置,在自定义控件时,前面设置了画笔的各个参数,如果后面还要用到画笔但要更改参数, 这时就不用重新new一个画笔,直接重置下就可以了。
1mPaint.reset();
3. 设置画笔颜色1mPaint.setColor(Color.RED);
4. 设置画笔宽度1mPaint.setStrokeWidth(30);
5. 设置画笔的样式1234//Paint.Style.FILL //填充//Paint.Style.STROKE //描边//Paint.Style.FILL_AND_STROKE //描 ...
自定义View-Canvas
一. 前言Canvas-画布,是一种绘制时的规则。画布只是绘制时的规则,但内容实际上是绘制在屏幕上的。
二. 基础1. Paint类自定义View-绘制文本
2. Path类自定义View-Path
三. 创建 & 获取12345678910111213141516171819202122232425262728// 方法1// 利用空构造方法直接创建对象Canvas canvas = new Canvas();// 方法2// 通过传入装载画布Bitmap对象创建Canvas对象// CBitmap上存储所有绘制在Canvas的信息Canvas canvas = new Canvas(bitmap)// 方法3// 通过重写View.onDraw()创建Canvas对象// 在该方法里可以获得这个View对应的Canvas对象@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); //在这里获取Canvas对象}// 方法4// 在SurfaceView里画图时 ...
Java-零碎知识
1. 求解角度在java中如何根据三角函数中的正弦值 余弦值 正切值求该角度值
Android控件-Dialog
一. 前言123//Dialog(对话框)java.lang.Object ↳android.app.Dialog
那么什么叫Dialog,简单来说就是一句话:弹出一个窗口,提示用户自己去选择。Dialog的生命周期通常会由Activity来控制,当Activity被销毁后,如果再有对Dialog的操作会导致异常。
1java.lang.IllegalArgumentException: View not attached to window manager。
Android系统自带的Dialog有四种:
-AlertDialog 普通提示对话框,可以有0-3个按钮,可以有单选或者复选框的对话框,可以创建大多数界面
-ProgressDialog 进度条对话框,显示一个进度或者进度条,继承自AlertDialog
-DatePickerDialog 日期对话框
-TimePickerDialog 时间对话框
所有对话框,都是直接或简介继承自Dialog,其它的几个类均继承自AlertDialog。
二. 系统默认的弹框1. 普通的对话框12345678910111213141 ...