Android UI
蹲街式等待
这个作者很懒,什么都没留下…
展开
-
Android 将整形颜色值转换成String类型
转换方法:val hexColor = String.format("#%06X", [0xFFFFFF or intColor]);转换结果:#F2EADA原创 2020-05-16 13:32:36 · 2764 阅读 · 0 评论 -
Android Studio 查看页面布局层次结构
Android Studio有个可以查看手机上app页面布局层次结构的工具。可以协助我们对布局进行优化,去掉没有必要的节点等,通过这个工具可以清晰的看见页面整个结构;废话少说直接上图,再说过程。这就是我们想要看到的,每个节点都很清晰的展现在我们面前。接下来我们看如何进入到这个页面,包括每部分都是什么功能。下面我们就来看下如何打开:(按照图中箭头顺序依次打开)总结:根据以上步骤就完成这...原创 2020-04-27 18:22:52 · 3957 阅读 · 0 评论 -
Android WebView 使用漏洞
一、类型WebView中,主要漏洞有三类:任意代码执行漏洞;密码明文存储漏洞;域控制不严格漏洞;二、具体分析2.1、WebView任意代码执行漏洞出现该漏洞的原因有三个:WebView 中 addJavascriptInterface() 接口WebView 内置导出的 searchBoxJavaBridge_ 对象WebView 内置导出的 ac...原创 2020-04-18 12:22:35 · 778 阅读 · 0 评论 -
Android Button字母自动全部大写的问题
两种解决方案:方法一:在 xml 布局中设置属性 android:textAllCaps="false"<Button android:layout_width="wrap_content" android:layout_height="match_parent" android:text="添加动作组" android:textAllCaps="false" androi...原创 2020-04-16 10:08:28 · 355 阅读 · 0 评论 -
Android WebView 与 JS 交互
目录一、交互方式总结二、具体分析2.1 Android通过WebView调用 JS 代码方式1:通过WebView的loadUrl()方式2:通过WebView的evaluateJavascript()方法对比使用建议2.2、JS通过WebView调用 Android 代码2.2.1、方法分析方式1:通过 WebView的addJavascriptInterface()进行对象映射方式2:通过 W...原创 2020-04-15 21:18:41 · 557 阅读 · 0 评论 -
Android WebView使用攻略
目录前言一、简介二、作用三、使用介绍1、Webview类常用方法1.1、加载url1.2、WebView的状态1.3、关于前进 / 后退网页1.4、清除缓存数据2、常用工具类2.1、WebSettings类2.2、WebViewClient类2.3、WebChromeClient类3、注意事项:如何避免WebView内存泄露?四、实例五、总结前言现在很多App里都内置了Web网页(Hybrid...原创 2020-04-15 02:30:08 · 482 阅读 · 0 评论 -
Android RecyclerView实现九宫格效果
RecyclerView更加优化的复用机制和方便实现UI效果,几乎替代Listview和GridView的使用。但是分割线的实现,需要自己继承ItemDecoration来绘制。效果图item的布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.and...原创 2020-04-08 18:14:33 · 4400 阅读 · 0 评论 -
Android 动态计算ListView的高度
一、简介在Android开发的过程中有的时候我们需要手动计算ListView的高度,比如说,ScrollView中嵌套ListView的时候,我们就需要手动精确计算ListView的高度了。如果ListView的Item高度是固定的话还好计算一些,我们可以直接使用Item的条数 * Item的固定高度来计算,但是如果Item的高度随着内容的变化而变化,那么该如何计算呢?下面我们就开始说说如何...原创 2020-04-07 18:14:51 · 1512 阅读 · 0 评论 -
Android Activity之间传递类对象
一、简介开发过程中,Activity之间传递数据是必不可少的,Android中使用Intent和Bundle作为数据载体,在Activity之间传递,对于基础数据类型,Bundle已经提供了相关的put、set方法,而作为自定义的类型则需要有特别的要求。自定义类型,想要使用Bundle传递时,需要满足特定的条件,即该类型需要实现Serializable接口或Parcelable接口。注:如果...原创 2020-04-03 20:46:46 · 2793 阅读 · 0 评论 -
Android Canvas绘制带箭头的直线
先看下效果图:下面我们直接看代码我自定义了一个View,代码如下:package com.davis.drawtrangle;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;impor...原创 2020-04-03 17:46:19 · 2447 阅读 · 0 评论 -
Android 在onCreate()方法中获取控件宽高值为0解决方案
大家很多时候需要在Activity或者Fragment的onCreate()方法中获取声明的空间的高度或者宽度,进行位置移动或者其他操作,但是当调用 view.getHeight() 或者 view.getWidth() 获取的竟然为0。。。其实很容易理解,在onCreate()的时候,实际上控件只是声明了,并没有绘制完成,没有attach到window上,所以导致获取的高度和宽度为0,那么该怎...原创 2020-03-30 13:56:17 · 1761 阅读 · 1 评论 -
Android 获取屏幕宽度和高度的几种方法
方法一:public static void getScreenSize1(Context context){ WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display defaultDisplay = window...原创 2020-03-30 12:10:58 · 2822 阅读 · 1 评论 -
Android MotionEvent中getX()、getRawX()和getTop()的区别
为了展示getX()、getRawX()和getTop()方法的区别,我们写了一个简单的测试Demo,我们写了一个自定义控件(继承ImageView)。package com.demo.ui;import android.content.Context;import android.support.annotation.Nullable;import android.util.Attri...原创 2020-03-30 11:25:01 · 701 阅读 · 0 评论 -
Android最全UI库合集
目录抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新ViewPager图表(Chart)菜单(Menu)浮动菜单对话框空白页滑动删除手势操作RecyclerViewCardColorDrawableSpinner布局模糊效果TabBarAppBar选择器(Picker)跑马灯日历时间主题样式ImageView通知聊天视图Header引导...原创 2020-03-12 16:29:20 · 5315 阅读 · 2 评论 -
Android UI卡顿监控
一、背景应用的使用流畅度,是衡量用户体验的重要标准之一。Android 由于机型配置和系统的不同,项目复杂App场景丰富,代码多人参与迭代历史较久,代码可能会存在很多UI线程耗时的操作,实际测试时候也会偶尔发现某些业务场景发生卡顿的现象,用户也经常反馈和投诉App使用遇到卡顿。因此,我们越来越关注和提升用户体验的流畅度问题。二、方案基于这样的痛点,我们希望能使用一套有效的检测机制,能够覆盖各...原创 2019-09-11 16:08:21 · 1476 阅读 · 0 评论 -
Android 为控件设置阴影
在Android中设置一个阴影很简单,只需要两步:1、设置eleavation值(高度)2、添加一个背景或者outline (即阴影的形状)说明:View的大小位置都是通过x,y确定的,而现在有了z轴的概念,而这个z值就是View的高度(elevation),而高度决定了阴影(shadow)的大小。注:View的z值由两部分组成,elevation和translationZ(它...原创 2019-08-14 18:21:54 · 8052 阅读 · 0 评论 -
Android在代码中设置drawableLeft(Right/Top/Bottom)
根据业务的需要,要在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom属性。我们知道在xml中设置的方法为:android:drawableLeft="@drawable/xxxxx"但是在代码中并没有相关的setDrawableLeft等方法。怎么办呢?别担心,api为我们提供了一个setCompoundDrawa...原创 2019-08-14 18:33:13 · 16451 阅读 · 2 评论