Android控件-ImageView
一. 继承图
二. Xml 中常用的方法1234android:src="@drawable/图片名" //设置前景图片或者颜色android:background="@color/colorAccent" //设置背景图片或者颜色android:scaleType="fitXY" //拉伸方式android:adjustViewBounds="true" //使ImageView和图片有一样的长宽比例
三. Java代码常用的方法123456789public void setImageBitmap(Bitmap bm) //设置前景图片public void setImageResource(@DrawableRes int resId) //设置前景图片 public void setBackgroundColor(@ColorInt int color) //设置背景颜色 p ...
Android布局-RelativeLayout
一. 继承图
二. Xml方式1. 所有的布局共有的属性① View在左上右下四个方向和其他View之间的距离,值是 dp
1234android:layout_marginStart (android:layout_marginLeft) android:layout_marginTopandroid:layout_marginEnd (android:layout_marginRight)android:layout_marginBottom
② View内部元素到View左上右下边框之间的距离,值是 dp
1234android:paddingStart (android:paddingLeft)android:paddingTopandroid:paddingEnd (android:paddingRight)android:paddingBottom
③ 容器 内部的对齐方式 以及 容器相对于父容器的对齐方式
12android:gravity //设置布局管理器内组件的对齐方式android:layout_gravity //设置布局本身相对于父 ...
Android随笔-View坐标系
一. View 获取坐标的方法
View.getTop()、View.getLeft()、View.getBottom()、View.getRight();
View.getX()、View.getY();
View.getTranslationX()、View.getTranslationY(); 等
View.getLocationInWindow(int[] position);
View.getLocationOnScreen(int[] position);
二. 获取View真实位置的坐标
这四个获取View坐标位置的方法是相对于父ViewGroup来说的。
这四个获取的值不会因为补间动画而发生改变。
1234View.getLeft() //View 左上顶点相对于父容器的横坐标View.getTop() //View 左上顶点相对于父容器的纵坐标View.getRight() //View 右下顶点相对于父容器的横坐标View.getBottom()//View 右下顶点相对于父容器的纵坐标
三.获取View显示位置的坐标
这两个获取View坐标 ...
算法题解-面试题 17.14. 最小K个数
1.题目描述面试题 17.14. 最小K个数
设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。
示例:
12输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]
提示:
0 <= len(arr) <= 100000
0 <= k <= min(100000, len(arr))
2.代码实现1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192class Solution { /** * leetcode 面试题 17.14. 最小K个数 * @param arr * @param k * @return */ ...
算法题解-378. 有序矩阵中第K小的元素
1.题目描述378. 有序矩阵中第K小的元素
给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。
示例:
12345678matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。
说明:
你可以假设 k 的值永远是有效的, 1 ≤ k ≤ n2 。
2.代码实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108class Solution { /** * leetcode P378 有序矩阵 ...
算法题解-215. 数组中的第K个最大元素
1.题目描述215. 数组中的第K个最大元素
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
12输入: [3,2,1,5,6,4] 和 k = 2输出: 5
示例 2:
12输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4
说明:
你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。
2.代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182class Solution { /** * 返回数组中第k大的数值 * @param nums * @param k * @return */ public sta ...
Android事件分发-Activity的事件分发机制
一.基础认知1.事件分发的对象
在之前的两篇文章中,我们经常提到事件消费。我们的对象就是这些事件(点击事件)。
当用户触摸屏幕时(View 或 ViewGroup派生的控件),将产生点击事件(Touch事件)
Touch事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象
2.事件类型
事件类型
具体动作
MotionEvent.ACTION_DOWN
按下View(所有事件的开始)
MotionEvent.ACTION_MOVE
滑动View
MotionEvent.ACTION_UP
抬起View(与DOWN对应)
MotionEvent.ACTION_CANCEL
结束事件(非人为原因)
3.事件分发的本质将点击事件(MotionEvent)传递到某个具体的View & 处理的整个过程
4.事件分发的顺序事件传递的顺序:Activity -> ViewGroup -> View
二. Activity的事件分发机制
一般情况下事件的开始都是 ACTION_DOWN,都会调用 onUserInteraction方 ...
Android事件分发-ViewGroup的事件分发机制
一. 简单的例子说明1.首先我们先自定义一个布局 MyLinearLayout
12345678910public class MyLinearLayout extends LinearLayout { public MyLinearLayout(Context context) { super(context); } public MyLinearLayout(Context context, @Nullable AttributeSet attrs) { super(context, attrs); }}
2.修改布局文件,并加入两个按钮。
1234567891011121314151617181920212223242526272829<?xml version="1.0" encoding="utf-8"?><swu.xl.viewgroup_touch.MyLinearLayout xmlns:androi ...