Android随笔-Shape
一. 应用场景日常开发中,我们会遇到一些Button、Textview…等控件的背景是圆角矩形、圆形…等,和android默认的控件背景矩形不一致,此时shape的作用就体现出来了,我们可以根据shape属性画出很多我们意想不到的背景图案。
具体使用方式:
123//一般情况下都是创建一个Xml文件例如shape_radius.xml。//写好样式,通过background的方式设置给控件。android:background="@drawable/shape_radius"
二. Shape 标签1. Shape标签的属性1android:shape
常见的值:
rectangle: 矩形,默认的形状,可以画出直角矩形、圆角矩形、弧形等。
oval: 椭圆形,用得比较多的是画正圆。
line: 线形,可以画实线和虚线。
ring: 环形,可以画环形进度条。
还有更多的属性,用到了再更新。。。
2. Shape 下标签① size 标签
12android:height:高度android:width:宽度
注意事项:只有控件宽高设置成wrap_ ...
算法题解-198. 打家劫舍
1.题目描述198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
示例 1:
1234输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。
示例 2:
1234输入: [2,7,9,3,1]输出: 12解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。 偷窃到的最高金额 = 2 + 9 + 1 = 12 。
2.代码实现12345678910111213141516171819202122232425262728293031323334353637 ...
算法题解-62. 不同路径
1.题目描述62. 不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
问总共有多少条不同的路径?
例如,上图是一个7 x 3 的网格。有多少可能的路径?
示例 1:
1234567输入: m = 3, n = 2输出: 3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向右 -> 向下2. 向右 -> 向下 -> 向右3. 向下 -> 向右 -> 向右
示例 2:
12输入: m = 7, n = 3输出: 28
提示:
1 <= m, n <= 100
题目数据保证答案小于等于 2 * 10 ^ 9
2.代码实现1234567891011121314151617181920212223242526272829303132333435363738394041public class Solution { ...
算法题解-55. 跳跃游戏
1.题目描述55. 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。
示例 1:
123输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。
示例 2:
123输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。
2.代码实现12345678910111213141516171819202122232425262728293031class Solution { public static boolean canJump(int[] nums) { //特殊情况排除 if (nums == null && nums.length == 0){ ...
Android动画-估值器(TypeEvaluator)
一. 简介1.作用一个接口,用来设置 属性值 从初始值过渡到结束值 的变化具体数值。
2.插值器与估值器区别
插值器(Interpolator)决定 值 的变化规律(匀速、加速 等等),即决定的是变化趋势;而接下来的具体变化数值则交给估值器。
估值器属性动画特有的属性。
二. 系统的估值器1.IntEvaluator:以整型的形式从初始值 - 结束值 进行过渡123456public class IntEvaluator implements TypeEvaluator<Integer> { public Integer evaluate(float fraction, Integer startValue, Integer endValue) { int startInt = startValue; return (int)(startInt + fraction * (endValue - startInt)); }}
2.FloatEvaluator:以浮点型的形式从初始值 - ...
Android动画-属性动画的使用小技巧
一. 属性动画的组合1. AnimatorSet类AnimatorSet类 用来实现 组合动画 的功能,常用方法如下:
12345678910111213141516171819202122//播放当前动画public Builder play(Animator anim);//将现有动画和传入的动画同时执行public Builder with(Animator anim);//将现有动画插入到传入的动画之前执行public Builder before(Animator anim);//将现有动画插入到传入的动画之后执行public Builder after(Animator anim);//将现有动画延迟 delay ms 执行public Builder after(long delay);//同时执行public void playTogether(Animator... items);public void playTogether(Collection<Animator> items);//按顺序执行public void playSequentially( ...
Android动画-ObjectAnimator
一. 原理实现动画的原理:直接对对象的属性值进行改变操作,从而实现动画效果
(注意:ObjectAnimator类继承自ValueAnimator类,即底层的动画实现机制是基于ValueAnimator类)
二. 类似ValueAnimator的使用形式1.Java代码的使用方式12345678910111213141516171819202122232425262728//创建动画 //Object object:需要操作的对象//String property:需要操作的对象的属性//values:动画初始值 & 结束值(不固定长度)ObjectAnimator ofInt(Object target, String propertyName, int... values) ;ObjectAnimator ofFloat(Object target, String propertyName, float... values);ObjectAnimator ofArgb(Object target, String propertyName, int... values)Ob ...
Android动画-ValueAnimator
一.原理实现动画的原理:通过不断控制 值 的变化,再不断 手动 赋给对象的属性,从而实现动画效果。如下图:
二.整型:ValueAnimator.ofInt()1.作用将初始值 以整型数值的形式 过渡到结束值,即估值器是整型估值器 - IntEvaluator。
1public static ValueAnimator ofInt(int... values)
2.Java代码① 相关的方法
123456789101112131415161718192021222324public static ValueAnimator ofInt(int... values) //创建动画实例 以及 将传入的多个Int参数进行平滑过渡//ValueAnimator.ofInt()内置了整型估值器,直接采用默认的.不需要设置,即默认设置了如何从初始值 过渡到 结束值 public ValueAnimator setDuration(long duration)//设置动画时间 public void setRepeatCount(int value)//设置动画重复次数 publi ...