- 博客(15)
- 资源 (7)
- 收藏
- 关注
原创 自定义View——带清空文本的功能的ClearEditText
EditText增加一个快速清除所有文本的功能。思路:1、在EditText右边增加一个删除按钮;2、当EditText输入框有内容时,按钮就显示出来,否则就隐藏。我们通过自定义View的方式来实现这个功能。...
2020-01-27 18:29:12 2150
原创 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 1966
原创 Android自定义View/ViewGroup
一、基本步骤自定义属性;重写onMeasure()方法;重写onDraw()方法;重写onLayout()方法;选择和设置构造方法;重写其他事件的方法(滑动监听等)二、常用到的View方法实现一个自定义视图,通常要提供框架在所有视图上都会调用的标准方法的重写,这些标准方法有:分类方法描述创建构造器有一种构造器形式是当视图是从代码创建时调用的;还有另一...
2020-01-21 18:26:40 2307
原创 自定义ViewGroup—实现自定义ViewPager
ViewGroup和View1、 ViewGroup是一个可以容纳View的容器,负责测量子视图或子控件的宽和高;并决定子视图或子控件的位置。常用的方法有:onMesure():测量子视图或子控件的宽高,以及设置自己的宽和高。onLayout():通过getChildCount()获取子view数量,getChildAt获取所有子View,分别调用layout(int l, int t, ...
2020-01-21 18:21:34 1964
原创 自定义ViewGroup——自定义布局
自定义ViewGroup和自定义View的步骤差不多。自定义ViewGroup需要重写onMeasure方法测量子控件的宽高和自己的宽高,然后在onLayout方法中摆放子控件。自定义View则是需要重写onMeasure根据测量模式和父控件给出的建议的宽高值计算自己的宽高,然后在父控件为其指定的区域绘制自己的图形。自定义ViewGroup的步骤:①. 继承ViewGroup,覆盖构造...
2020-01-20 12:07:21 2789 2
原创 自定义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 1849
原创 Android RecyclerView GridLayoutManager 布局中每个Item组都带一个标题
Demo今天写了个demo,是关于意见反馈的页面的,当中使用到了RecyclerView和GridLayoutManager:demo效果图:详细情况,请大家下载demo查看。这里我想特别分享两点:1、如何实现每行列数不一样或多列的视图。2、如何实现网络布局中item之间的间距是均等的。如何实现把网格布局差异化显示要求 RecyclerView GridLayoutManager ...
2020-01-15 16:42:25 3801 2
原创 shell输入输出
重定向字符>和>>>符号可以将前面命令的结果重定向到符号后面指定的地方,如:~/Desktop$ ls > hello.txt~/Desktop$ cat hello.txtaAIDLEXampleBookcEMASEnglishHouseGithubSourcegit常用命令.txtGTK+学习.txthello.txt...如上...
2020-01-07 16:14:52 1847
原创 单例模式-LayoutInflater
前言在Android系统中,我们通常会通过上下文对象Context获取一些系统级别的服务。而这些服务会在适当的时候以单例的形式注册在系统中,那么我们就可以通过Context的getSystemService(String name)获取。以下的源码是Android8.0 API 26。LayoutInflater今天我们来看一下Android源码中的设计模式之单例模式。我们来讲一讲我们经常...
2020-01-07 11:51:15 1879
原创 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 1928
原创 Android开发之AIDL
概述在Android中实现跨进程通信的方式有很多种,如广播、Content Provider、AIDL(Android Interface Definition Language)。AIDL在跨进程通信中用得最多,因为AIDL相比其他方式,速度更快,效率更高。AIDL最常见的使用场景:让某个Service与多个应用程序组件之间进行跨进程通信,从而可以实现多个应用程序共享同一个Service的功...
2020-01-07 01:20:08 1942
原创 生成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 2333
原创 Android 模块化开发
概述单独开发每个模块,用集成的方式把他们组合起来,拼出一个app。如通用的模块,自动更新的模块,反馈模块,推送模块都可以单独以模块来开发,最后进行集成。我们可以通过一个壳来包含很多个模块。好处可以单独升级模块。耦合度低。同时,也很好地解决了“牵一发而动全身”的问题。方便分工。与其他团队合作时,如外包的团队,可以很好的地将核心代码与外包部分隔离开,不用和他们分享核心代码,让他们去做独立的功能,...
2020-01-03 15:00:15 3596 3
原创 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 2080
原创 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 2066
Android-ttf.zip
2020-07-02
java-json.jar.zip
2020-06-27
sqlitestudio-3.2.1.tar.xz
2020-04-17
mongodb-org-server_4.2.5_amd64.deb
2020-03-28
jdk1.6-bin.zip
2019-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人