android
文章平均质量分 83
King 老师
从事工作10年+,精通Flutter和Android开发
展开
-
15分钟带你彻底了解App绘制流程-安卓篇
通过这篇文章可以让从源码角度彻底知道安卓的绘制流程,以及View和ViewGroup的执行生命周期的回调等原创 2023-12-20 00:36:16 · 1111 阅读 · 0 评论 -
Android内存抖动
什么原因导致‘内存抖动’内存回收是指在程序需要对象的时候,在堆当中分配出来一块空间,使用完毕以后,由 GC 帮我们清理掉这片内存空间。如果频繁的一直持续上述操作,就会引起内存抖动。也就是有源源不断的对象被创建,同时又有源源不断的对象被回收,这时候就会内存抖动。安卓中内存抖动的影响1.影响app响应速度。2.app UI卡顿,甚至应用无响应。为什么有这么大影响?因为现在基本的jvm(比如cms)的垃圾回收处理器,需要停止工作业务线程,再进行垃圾回收.如果回收的时间越久,app的所有原创 2022-04-24 11:52:28 · 2877 阅读 · 0 评论 -
Dex加载工具类
public class HotFixUtils { private static final String TAG = "lxbnjupt"; private static final String NAME_BASE_DEX_CLASS_LOADER = "dalvik.system.BaseDexClassLoader"; private static final String FIELD_DEX_ELEMENTS = "dexElements"; private .转载 2020-07-24 18:06:19 · 263 阅读 · 0 评论 -
折线图(七)自定义属性
项目下载地址:https://github.com/Sam474850601/ChartView效果图如下:xml代码xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="mat原创 2015-12-01 13:59:50 · 977 阅读 · 1 评论 -
IInputConnectionWrapper: showStatusIcon on inactive InputConnection
发现了一个bug, 在我点击消除editext时候。突然间退出了几面。而且没有任何警告。原因是 自己写的onKeyDown的关系,和消除的按钮冲突了。修改下就好了原创 2015-12-05 12:04:06 · 2429 阅读 · 0 评论 -
Android Databinding 从入门到转行(四)自定义设置通知刷新回调
步骤:1.添加ViewModel属性成员T t2.在ViewModel添加个静态方法sss,方法第一个参数是你将要操作的view,第二个参数以上是你的ViewModel属性T成员变化时候,会通知回调这个方法,并且传值给这参数, 3.添加注解 @BindingAdapter("app:xxx"), xxx名字随意取,会在xml视图用到.原创 2016-07-20 14:02:49 · 3052 阅读 · 0 评论 -
使用注解提供view引用和点击事件
源码下载地址:https://github.com/Sam474850601/ViewHelperpublic class SimpleActivity extends Activity {@Find(R.id.tv_content)//让工具帮你提供引用private TextView textView;@Overrideprotected void on原创 2015-10-17 16:32:25 · 757 阅读 · 2 评论 -
万能ExpandableListAdapter适配器
源码下载地址:https://github.com/Sam474850601/CommonExpandableListAdapterDemo或者引入地址: compile 'com.github.sam474850601:fastutils:1.0.3'为了避免每次都要写重复代码的BaseExpandableListAdapter,所以写了通用的adapter假设我要实现这个效果:原创 2015-12-18 12:58:37 · 3370 阅读 · 0 评论 -
折线图(六)绘制真正可用的折线图
之前那几遍都是为了展示实现思路的,并不是真正的图实现。看过的人大致都知道接下来怎么做了,只不过是测量下折线图然后设置合理的大小。这个下面本人实现的折线图是测试数据的图,随机点测试package sam.android.utils.widget;import java.util.List;/** * 折线信息 */public class LineCha原创 2015-11-26 00:43:21 · 1883 阅读 · 0 评论 -
修改Actionbar菜单字体大小
如:<application android:name=".MyApplication" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">修改主题:appThemename="A原创 2015-11-19 17:01:29 · 1526 阅读 · 0 评论 -
折线图(四)计算坐标轴文字大小,确定准确位置
计算paint后的文字长度,高度 方法如下Paint xValuePaint = new Paint(); //画笔xValuePaint.setColor(Color.BLACK);xValuePaint.setTextSize(textSize);xValuePaint.getTextBounds(xName, 0, xName.length(), nRect);int nW原创 2015-11-18 13:22:33 · 1244 阅读 · 0 评论 -
折线图(一)绘制折线图坐标轴
如图,对于手机图形的绘制, 他的坐标轴原点在左上方. 绘制折线图的第一步就是要先绘制出, 折线图的坐标轴,由于手机坐标轴原点在左上方.那么折线图的原点y轴久正好相反。 原点坐标是(0, height)分别为4个步骤,绘制x轴, y轴, x轴箭头, y轴箭头为了看清楚这折线图, 我们把它设置view边缘100px内的位置. 我的自定义包命为:sam.android.utils原创 2015-11-16 22:27:31 · 4911 阅读 · 0 评论 -
位运算使用场景
public class Test { public static class Info { public static int FLAG_SHABI = 0x0001; public static int FLAG_LAJI = 0x0002; public static int FLAG_ZHAZHA = 0x0004; public int mFlag = 0;原创 2016-04-25 17:20:52 · 1478 阅读 · 0 评论 -
解析“a=xxx;b=xxx;c=xxx;.....”,使用"Uson"
经常做项目发现有种字符串格式需要解析---- "a=xxx;b=xxx;c=xxx;..." , 然而这种格式在网上并没有人写对应的框架工具去解析它并且去规范它。因此,菜鸡的我没办法去偷懒,所以只能去自己去写。我的封装原则就是一旦封装,用起来就得无脑且能偷懒则偷懒。"a=xxx;b=xxx;c=xxx;..." 这个格式比较像url的拼接,所以本菜鸡取名叫Uson。。。呵呵勿喷。需原创 2016-07-14 15:25:31 · 1399 阅读 · 0 评论 -
Android Databinding 从入门到转行(一)初步介绍
这是google官方的介绍,不过需要翻墙,你懂的。。。。https://developer.android.com/topic/libraries/data-binding/index.html这官方上的简介,翻译过来是酱紫的:Data Binding Library提供了灵活性和广泛的兼容性-这是一个支持库,前提是要使用版本Android 2.1(API级别7+)以上原创 2016-07-19 16:43:00 · 1576 阅读 · 0 评论 -
MVP框架之EasyMVP
转载请声明出处:http://blog.csdn.net/YoYo_Newbie/article/details/78509820前言由于前年学习MVP架构后,对其有了深刻的认知。离职后到了下家公司决定开发个MVP框架,投入使用。大概花了一周的时间包括设计,编码,自测搞完了这套框架。随着投入开发时,还是有不少问题,不过经过不断的淬炼,使用了一年到了如今的稳定版。最近发现还有耦合性优化的空间,于是提升原创 2017-11-12 03:04:52 · 1280 阅读 · 0 评论 -
android 绘制计算text高度,宽度大小
绘制文本的时候,通常我们需要计算文本的大小来进行布局。而需要精确计算文本大小时候,需要用Paint的api来获取文本的高度大小,通常的做法是:String text = "xxx";Paint pain = new Paint();pain.setAntiAlias(true);float textSize = 24f;pain.setTextSize(textSize);原创 2017-07-20 10:10:06 · 2637 阅读 · 0 评论 -
slidingmenu沉淀式
将activity沉淀式时候,发现slidingmenu不会上移,原因是slidingmenu重写了fitSystemWindows这个方法,找到fitSystemWindows方法。将它删掉,就轻松解决了。原创 2016-11-18 09:50:02 · 451 阅读 · 0 评论 -
Android Databinding 从入门到转行(三)在xml视图将ViewModel成员注入到View的setXXX方法
注入规则:条件:某View中如含方法:setXXX, 参数唯一,类型为T 注入步骤:在ViewModel中,添加 T 类型成员引用t 注入方法:在对应的xml,的根元素layout, 添加xmlns:app="http://schemas.android.com/apk/res-auto 然后,找到某View , 添加app:xxxx原创 2016-07-19 20:57:23 · 5022 阅读 · 0 评论 -
Android Databinding 从入门到转行(二)添加点击事件
需求二: 实现用户简介界面---已知用户名字为Sam, 年龄为25.进入界面时候,要求显示用户名字字段,年龄字段,内容都显示未加载,点击 “显示数据”才显示用户的数据UI效果图:使用databinding , 响应事件不在需要在activity里面添加, 而是在View Model里面添加!是不是很6?关键代码原创 2016-07-19 17:54:33 · 4407 阅读 · 0 评论 -
折线图(三)绘制x轴单位值,以及标识物
这里的坐标轴只是演示,到后面还要根据情况就算x,y轴的大小决定 折线图的大小。attrs.xmlxml version="1.0" encoding="utf-8"?> name="LineChartView"> name="chartPadding" format="dimension">原创 2015-11-17 14:00:48 · 1850 阅读 · 0 评论 -
折线图(二)自定义LineChartView的折线图padding的长度
首先在values文件夹新建attrs.xml文件xml version="1.0" encoding="utf-8"?>resources> declare-styleable name="LineChartView"> attr name="chartPadding" format="dimension">attr> declare-style原创 2015-11-16 23:08:24 · 1187 阅读 · 0 评论 -
PullToRefreshListView 的使用
xmlns:ptr="http://schemas.android.com/apk/res-auto" android:id="@+id/carsList" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout转载 2014-11-20 09:51:10 · 969 阅读 · 1 评论 -
SQLite数据库拼写工具类
为了避免打关键字出错,特意写的工具类,原创 2014-10-16 12:28:44 · 578 阅读 · 0 评论 -
横向listview
/* * HorizontalListView.java v1.5 * * * The MIT License * Copyright (c) 2011 Paul Soucy (paul@dev-smart.com) * * Permission is hereby granted, free of charge, to any person obtaining a copy转载 2014-11-18 11:53:50 · 647 阅读 · 0 评论 -
被嵌套的ViewPager滑动失效解决
package com.weimei.app.communication.widget;import android.content.Context;import android.graphics.PointF;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import转载 2014-10-29 09:04:28 · 730 阅读 · 0 评论 -
带边线圆形image
package de.hdodenhof.circleimageview;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Bitmap;import android.graphics.BitmapShader;import a转载 2014-10-09 18:13:47 · 633 阅读 · 0 评论 -
android ide 下载
https://github.com/inferjay/AndroidDevTools/转载 2014-10-27 15:14:01 · 1704 阅读 · 0 评论 -
画圆角
http://schemas.android.com/apk/res/android" android:shape="rectangle" > android:radius="0.1dp" android:topLeftRadius="2dp" android:原创 2014-09-02 17:20:00 · 511 阅读 · 0 评论 -
android color
#00a5d9 #019aca #a01a5f89 #cccccc #b2b0b0 #353535 #161616 #d9d8d8 #7a7a7a #3887b7 #e9e9e9 #d0d0d0 #0094e8 #0068a3 #00000000 #原创 2014-09-10 21:43:46 · 507 阅读 · 0 评论 -
ViewPager 嵌套ViewPager 焦点解决
工具 import android.content.Context;import android.graphics.PointF;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import android.view.MotionEvent;public转载 2014-08-26 10:13:32 · 1771 阅读 · 0 评论 -
获取sdcard所有图片意图设置
Intent intent = new Intent();/* 开启Pictures画面Type设定为image */intent.setType("image/*");/* 使用Intent.ACTION_GET_CONTENT这个Action */intent.setAction(Intent.ACTION_GET_CONTENT);/* 出现截取界面 */intent转载 2014-08-12 11:03:00 · 732 阅读 · 0 评论 -
ExpandableListView 保持只有一个展开
helpList.setOnGroupExpandListener(new OnGroupExpandListener(){@Overridepublic void onGroupExpand(int groupPosition){for (int i = 0; i {if (groupPosition != i && helpList.isGroupExpande原创 2014-07-14 11:08:32 · 753 阅读 · 0 评论 -
Android studio快捷键
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Spac转载 2014-08-06 13:55:00 · 513 阅读 · 0 评论 -
安卓dip和px相互转换
public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public staticint dip2px(Context context, float dpValue) { final float scale = context.getResources转载 2014-07-29 11:14:06 · 639 阅读 · 0 评论 -
pdf开源连接
https://github.com/joniks/Android-MuPDF转载 2014-12-10 11:25:46 · 629 阅读 · 0 评论 -
自定义actionbar
下载地址:http://blog.csdn.net/YoYo_Newbie/article/details/46470379package com.example.myactionbar;import ki.sam.actionbar.ActionBar;import ki.sam.actionbar.ActionBarManager;import ki原创 2015-06-23 18:17:14 · 678 阅读 · 0 评论 -
无法直接删除安卓图片浏览器中图片
当我们使用Intent打开图片浏览器如:Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(intent, 1);获取到的图片的地址如: Uri originalUri =原创 2015-10-30 16:04:20 · 1104 阅读 · 0 评论 -
SwipeRefreshLayout如何自动刷新
之前试了N种方法都不行,原来是需要调用handler.postDelayed方法才能出现动画效果。而且SwipeRefreshLayout.setRefrehing(true)不会触发下拉的业务。SwipeRefreshLayout.OnRefreshListener refreshListener = new SwipeRefreshLayout.OnRefreshList原创 2015-11-16 11:46:51 · 2727 阅读 · 0 评论 -
为PopupWindow提供builder,绿化activity或fragment代码
对于PopupWindow,需求一般都是,显示窗口视图,指定窗口大小,高度,显示的位置,编写业务逻辑的代码。许多人的做法是直接在activity或fragment初始化,并且加载view等等操作,那么这样做法是不好的,如果视图内容和业务逻辑代码多情况下,后期维护管理比较烦.因此我们可以选择为PopupWindow构造一个基类的builder,加速开发同时又可以在builder里面编写业务逻辑代码,原创 2015-10-07 13:52:19 · 1250 阅读 · 0 评论