2 WongKyunban

尚未进行身份认证

暂无相关简介

等级
TA的排名 1w+

自定义View——带清空文本的功能的ClearEditText

EditText增加一个快速清除所有文本的功能。思路:1、在EditText右边增加一个删除按钮;2、当EditText输入框有内容时,按钮就显示出来,否则就隐藏。我们通过自定义View的方式来实现这个功能。...

2020-01-27 18:29:12

dp sp 转换 px

package com.wong.utils;import android.content.Context;public class CommonUtils { /** * 将dp转换为与之相等的px */ public static int dp2px(Context context, float dp) { final float s...

2020-01-22 14:51:45

Android自定义View/ViewGroup

一、基本步骤自定义属性;重写onMeasure()方法;重写onDraw()方法;重写onLayout()方法;选择和设置构造方法;重写其他事件的方法(滑动监听等)二、常用到的View方法实现一个自定义视图,通常要提供框架在所有视图上都会调用的标准方法的重写,这些标准方法有:分类方法描述创建构造器有一种构造器形式是当视图是从代码创建时调用的;还有另一...

2020-01-21 18:26:40

自定义ViewGroup—实现自定义ViewPager

ViewGroup和View1、 ViewGroup是一个可以容纳View的容器,负责测量子视图或子控件的宽和高;并决定子视图或子控件的位置。常用的方法有:onMesure():测量子视图或子控件的宽高,以及设置自己的宽和高。onLayout():通过getChildCount()获取子view数量,getChildAt获取所有子View,分别调用layout(int l, int t, ...

2020-01-21 18:21:34

自定义ViewGroup——自定义布局

自定义ViewGroup和自定义View的步骤差不多。自定义ViewGroup需要重写onMeasure方法测量子控件的宽高和自己的宽高,然后在onLayout方法中摆放子控件。自定义View则是需要重写onMeasure根据测量模式和父控件给出的建议的宽高值计算自己的宽高,然后在父控件为其指定的区域绘制自己的图形。自定义ViewGroup的步骤:①. 继承ViewGroup,覆盖构造...

2020-01-20 12:07:21

自定义View——闹钟

我们今天来自定义一个闹钟。效果如下:第一步:自定义属性在文件app/src/main/res/values/attrs.xml中加入自定义属性:<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="ClockView"> <at...

2020-01-16 18:01:00

Android RecyclerView GridLayoutManager 布局中每个Item组都带一个标题

Demo今天写了个demo,是关于意见反馈的页面的,当中使用到了RecyclerView和GridLayoutManager:demo效果图:详细情况,请大家下载demo查看。这里我想特别分享两点:1、如何实现每行列数不一样或多列的视图。2、如何实现网络布局中item之间的间距是均等的。如何实现把网格布局差异化显示要求 RecyclerView GridLayoutManager ...

2020-01-15 16:42:25

shell输入输出

重定向字符>和>>>符号可以将前面命令的结果重定向到符号后面指定的地方,如:~/Desktop$ ls > hello.txt~/Desktop$ cat hello.txtaAIDLEXampleBookcEMASEnglishHouseGithubSourcegit常用命令.txtGTK+学习.txthello.txt...如上...

2020-01-07 16:14:52

单例模式-LayoutInflater

前言在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。以下的源码是Android8.0 API 26。LayoutInflater今天我们来看一下Android源码中的设计模式之单例模式。我们来讲一讲我们经常...

2020-01-07 11:51:15

Android进程间通信之AIDL工作原理初探

我们新建了AIDL文件后,再build一下项目,就会生成编译后的AIDL,如:// IMyAidlInterface.aidlpackage com.wong.remoteservice;// Declare any non-default types here with import statementsinterface IMyAidlInterface { // 服务端数据...

2020-01-07 10:27:32

Android开发之AIDL

概述在Android中实现跨进程通信的方式有很多种,如广播、Content Provider、AIDL(Android Interface Definition Language)。AIDL在跨进程通信中用得最多,因为AIDL相比其他方式,速度更快,效率更高。AIDL最常见的使用场景:让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多个应用程序共享同一个Service的功...

2020-01-07 01:20:08

生成aar文件及引用aar文件

aar不是jar,更不是library。因为jar不能带资源只能带java代码。1.导出 aarAndroid Library项目的build.gradle脚本在开头声明apply plugin: 'com.android.library'执行./gradlew assembleRelease~/Desktop/MyApplication$ ./gradlew assembleRele...

2020-01-03 15:45:19

Android 模块化开发

概述单独开发每个模块,用集成的方式把他们组合起来,拼出一个app。如通用的模块,自动更新的模块,反馈模块,推送模块都可以单独以模块来开发,最后进行集成。我们可以通过一个壳来包含很多个模块。好处可以单独升级模块。耦合度低。同时,也很好地解决了“牵一发而动全身”的问题。方便分工。与其他团队合作时,如外包的团队,可以很好的地将核心代码与外包部分隔离开,不用和他们分享核心代码,让他们去做独立的功能,...

2020-01-03 15:00:15

AndroidManifest.xml文件报Activity supporting ACTION_VIEW is not set as BROWSABLE的解决方法

在AndroidManifest.xml文件中注册activity时,在加入<data>标签时后报了以下错误:Activity supporting ACTION_VIEW is not set as BROWSABLE。意思是支持ACTION_VIEW的Activity未设置为BROWSABLE。报错的AndroidManifest.xml:...<activity...

2020-01-02 10:42:12

java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs

在Android Studio编译app时,报错:java.lang.RuntimeException: Manifest merger failed with multiple errors, see logs从报错信息来看是AndroidManifest.xml合并时报的错,那么如何才可以看到具体的信息呢?解决方法: 点开清单文件,然后再点击左下角merged manifest,具体的...

2020-01-02 09:55:21

C语言之函数

C语言是靠函数来实现模块化的。使用函数,就不用将所有功能都写在main函数里。程序的结构也清晰,易读,易维护。模块化设计1. 各个函数实现各自的功能。最后利用main函数来调用各种函数,从而实现各种功能。2. 一个源程序文件是由一个或者多个程序模块组成,每个模块负责一个功能。3. C程序总是从main函数开始执行的,main函数调用其他函数,系统调用main函数。4. 函数之间不可以嵌套...

2019-12-24 23:46:59

C语言之常量

2019-12-24 15:24:46

C语言之static、extern的作用

一、变量的范围和生命期1.全局变量变量在(包括自定义函数和main函数)外定义/声明,作用范围:本文件。2.局部变量在函数内定义的(包括形参),作用范围:所在函数内。注: 全局变量和局部变量同名,(在局部所在范围内)全局则被屏蔽(以局部为准)局部变量和局部变量同名(不影响)二、变量的存储方式和生命期存储方式分为静态存储和动态存储:1.静态存储:运行期间由系统分配的固定的存储空间 ...

2019-12-24 10:30:09

Git常用命令汇总

1、创建仓库,并初始化Git,执行了git init初始化后,当前文件夹的文件都将置于git管理工具的管理与跟踪当中。这个命令会在当前目录下生成.git文件夹:$ git init2、克隆一个项目到本地:$ git clone [url]3、查看当前目录所在的分支:$ git status4、创建分支(提示:以当前分支为基础,开一个分支)$ git branch [branch-...

2019-12-23 19:20:33

C语言之三种基本结构

C语言程序的三种基本结构:顺序结构、选择结构(if语句)、循环结构(for、while、do-while)。顺序结构从第一条语句执行到最后一条语句,按顺序的执行。示例:#include <stdio.h>#include <math.h>int main(int argc,char* argv){ double x,y,sum; ...

2019-12-22 23:17:13

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周上午根据用户上周周三的博文发布情况由系统自动颁发。