在onCreate里面显示PopWindow会发生什么?
1.在onCreate()方法里面调用PopupWindow的showAsDropDown或者showAtLocation会发生什么? 我们来实践下,在onCreate里面写入如下代码
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
仪表盘自绘View
主要介绍里面一些实现功能点的方法。
首先这个View主要涉及这几个技能点。
canvas几个技能点
画布中心点平移
画布旋转
画布状态保存与恢复
画布画圆弧
画笔Paint几个技能点
画文字
画线
渐变色
SweepGradient
动画
ValueAnimator
………………………………………………………………………………………………………………………………….
画布中心点平移 canvas.translate(float dx, float dy), 我们知道画布中心点(0, 0)默认在左上角, 我们把中心点通过canvas.translate(mWidth / 2,
2020-05-19
Android
Android绘制UI
TopK问题之前K个高频元素
给定一个非空的整数数组,返回其中出现频率前 K高的元素。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
提示:
你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。你可以按任意顺序返回答案。
解题思路:
方法一:采用暴露排序法, 使用排序算法对元素按照频率由高到低进行排序,然后再取前 k个元素,时间复杂度已超过nlogn。
方法二:hashMap和最小堆
首选用hashM
LeetCode盛最多水的容器
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
怎么解呢?没错,“双指针”法!
在初始时,比如第一个指针在1位置,第二个在7位置,左右指针分别指向数组的左右两端,它们可以容纳的水量为 min(1, 7)