自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 google auto-service找不到实现类的问题

AutoService(),在手机上正常,在目标设备出错,空指针异常,排查原因发现两个只有manifest的sharedUserId的差别。再分析,log中有以下错误。AutoService的源码中也有ClassLoader的使用,问题应该就是这儿了。最近组件化开发,使用了google的注解。manifest.xml写了。

2023-01-17 10:06:45 444

转载 SavedStateHandle使用

class TestActivity : AppCompatActivity(), SavedStateRegistryOwner { private val mSavedStateRegistryController = SavedStateRegistryController.create(this) private lateinit var saveStateViewModel: SaveStateViewModel override fun onCreate(saved.

2022-02-08 17:41:42 323

原创 Android Transition摘要

Android Transition摘要

2022-02-08 17:39:33 1685

原创 android自定义view获取android原生属性

private void init(AttributeSet attrs) {// 数组必须升序TypedArray typedArray = getContext().obtainStyledAttributes(attrs,new int[] {android.R.attr.textColor, android.R.attr.background});textColorId = typedArray.getResourceId(0, -1);bgId = typedArray.g..

2021-12-02 19:33:11 2040

原创 lambda转换+排序

Set<BluetoothDevice> bondDevices = mBluetoothAdapter.getBondedDevices();List<BluetoothDevice> data = new ArrayList<>(bondDevices);List<BluetoothEntity> collect = data.stream().map(BluetoothEntity::new) .sorted(Comparator..

2021-07-19 19:44:50 163

原创 Bitmap CenterCrop

private static Bitmap cropBitmap(Bitmap src, int tarW, int tarH) { if (null == src) { return null; } int srcW = src.getWidth(); int srcH = src.getHeight(); float wScale = 1.0f * srcW / tarW; float hScale = 1.0f * srcH / ta.

2021-06-30 22:28:21 312

原创 解决windowManager.addView无法跨越导航栏的问题

WindowManager.layoutParams.flags |= FLAG_LAYOUT_NO_LIMITS

2021-06-30 22:27:25 411

原创 Wifi相关知识

监听wifi开关及连接wifi的名称WifiStatusTrackerprivate static final IntentFilter INTENT_FILTER;static { INTENT_FILTER = new IntentFilter(); INTENT_FILTER.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); INTENT_FILTER.addAction(WifiManager.NETWORK_STATE...

2021-05-28 20:32:25 225

原创 linux脚本生成的文件后缀带?解决方案

脚本的换行格式换成”LF"就可以了

2021-05-18 10:19:34 392

原创 recyclerView限制高度(最大高度)

public class HeightLimitRecyclerView extends RecyclerView { private static final String TAG = HeightLimitRecyclerView.class.getSimpleName(); private int mMaxHeight; public HeightLimitRecyclerView(Context context) { this(context, nul.

2021-05-12 11:50:49 1135

原创 android dialog宽高异常的问题

Dialog会把contentView的宽度改为wrap_content解决方案是在外面再包裹一层ViewGroup就行

2021-05-10 15:32:49 523

原创 android 针对特定android版本使用系统接口

有些系统接口标志为@system api,接口的参数又带有abstract类型,无法反射调用。用以下方法可以调用到特定版本的api:下载对应版本的framework.jar包build.gradle:dependencies {compileOnly files('libs/framework.jar')}gradle.projectsEvaluated { tasks.withType(JavaCompile) { Set<File&..

2021-05-10 11:11:02 303

原创 android全屏

获取焦点导航栏又出现: getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION | WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);获取焦点导航栏也不会出现View de...

2021-04-23 11:45:13 90

原创 RecyclerView中ItemView设置LayoutTransition,解决itemView的子view减少时,RecyclerView先于itemview改变的问题

关键在于mTransitioner.enableTransitionType(LayoutTransition.CHANGING);mTransitioner.setStartDelay(LayoutTransition.CHANGE_DISAPPEARING,0);整个itemview的代码package com.cjr.learnapplication;import android.animation.LayoutTransition;import android...

2021-01-23 23:15:29 410 1

原创 仿WPS三色转圈圈动画

偶然看到wps的加载动画有点意思,试着写一个。我是先录制屏幕,把视频拆成一帧帧,然后用视频时间(ms)/图片数 = 一帧代表多少ms17 000ms / 179帧 = 95ms/帧大家也可以自己录制,拆分,自己计算。由于拆分算法不一样可能导致计算结果不太一样,不过不影响效果。...

2020-09-13 23:51:53 160

原创 Okhttp的责任链模式分析

注:本文根据okhttp-3.2.0源码分析。在OkHttpClient的创建中,有以下代码 private OkHttpClient(OkHttpClient.Builder builder) { this.dispatcher = builder.dispatcher; this.proxy = builder.proxy; this.protocols = builder.protocols; this.connectio

2020-08-16 23:28:15 378

原创 RecyclerView滑动删除与ViewPager冲突解决方法

ViewPager放了3个fragment,在第三个有recyclerView,因为是最后一个了,向左滑删除,逻辑上也不会出现问题import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent;pu

2018-04-01 14:10:51 2120 1

原创 仿iOS后台通话时,通知栏的呼吸字体动画

iPone通话时,退到后台的话,通知栏会有提示“正在通话,通话时长05:12”,感觉挺不错了,仿了一个import android.animation.ArgbEvaluator;import android.animation.ObjectAnimator;import android.animation.ValueAnimator;import android.animation.Va...

2018-03-29 09:14:03 579

原创 android源码应用添加依赖包

预编译要添加在android.mk文件加上include $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \    dialer_picasso:libs/picasso.jar include $(BUILD_MULTI_PREBUILT)

2018-03-12 18:56:38 918

原创 android 4.4电话源码 :拨号流程

之前公司一直在做6.0 、7.0 的产品,突然来个4.4,差别还是有的,4.4竟然没有Telecomm,看来6.0的是从Telephony分离出来的。好了,开始了。从Dialer的DialpadFragment开始。 public void dialButtonPressed() { mHaptic.vibrate(); handleDialButtonPre...

2018-03-05 08:38:44 1270

原创 android6.0 Bluetooth蓝牙源码流程笔记

注:基于mtk平台的android6.0,由于我个人水平有限,代码细节不能详细说明,抱歉参考文章:http://blog.csdn.net/shichaog/article/details/52728684http://blog.csdn.net/baimy1985/article/details/8922508http://blog.csdn.net/yanli0084/ar

2018-01-09 09:34:06 8007 1

原创 如何在Android系统中添加系统服务(以PowerManager为例)

1.frameworks\base\core\java\android\os中添加一个PowerManager.java和IPowerManager.aidl文件,PowerManager构造函数传入一个实现aidl接口的实现类2.frameworks\base\services\core\java\com\android\server中添加一个SystemService的实现类PowerMa

2018-01-02 11:50:06 1150

原创 关于Android源码中|= (m & STATIC_VALUE) !=0 的理解

看Android源码时发现有很多地方都用这种方式private static final int STATIC_CHANGE_1 = 1 private static final int STATIC_CHANGE_2 = 1 private static final int STATIC_CHANGE_A = 1 private static final int STATIC_C

2017-12-16 14:11:46 234

原创 android Volley简略流程

Cache分发者判断有没有缓存, 没有就网络如果有,首先会看缓存保存的响应头,如果有“Cache-Control",这是个时间s,判断有没有过期,没有过期就直接返回了。如果过期了,发送请求,这个请求会把上次请求的响应头的”Last-Modified“作为参数,如果服务器返回304,表示服务器告诉你,虽然你的缓存过期了,但是服务器这边还是没改,你用你的缓存就是了,然后直接用缓存了。如果返

2017-08-07 20:19:44 243

原创 android蓝牙开发read failed, socket might closed or timeout, read ret: -1

read failed, socket might closed or timeout, read ret: -1这个问题的原因有很多种可能。一、如果设备1没开启接收服务,设备2连接它理所当然会连接失败,此时当设备1开启服务,设备2再连接也可能会失败,http://stackoverflow.com/questions/18657427/ioexception-read-failed-

2016-10-09 15:22:59 20283

原创 android在本应用中d长截图,截长图

注:这个截图是截取自己应用的图,而不是系统那种(电源+音量减)截图功能(要root或者5.1吧)做一个应用的时候要一个截图分享功能,这个图片外面还要个花边,好吧,上个粟子(锤子便签长截图)注意的是 :要截的图很长很长方法一:View.getDrawableCache()获取Bitmap,ImageView.setImageBitmap(),花边就用ImageVe

2016-04-22 17:53:10 1716

原创 Intent_filter匹配规则

一个activity可以有多个intent-filter,一个intent只要匹配到其中一个就匹配成功intent必须匹配一个或一个以上action才能匹配intent-filter成功,但是这个还没充分(一个intentkw 能有1个或者0个action)intent可以有0个或者多个category,每个都要在intent-filter中出现才能匹配成功,0个就默认匹配

2016-03-22 23:26:18 288

原创 PageTransformer使用及注意

手指从右到左,A界面跳到B界面的时候:A:  0  ~~  -1               B:1 ~~ 0手指从左到右,B界面跳转A界面的时候:A:  -1 ~~  0                B:0 ~~ 1viewpager滑动的时候自带translationx效果。比如a到b,想让a不动,view.setX(0)是不行的,因为下一次滑动会覆盖,所以要vi

2016-03-21 16:54:15 1099

原创 android缓存Bitmap

缓存是为了更快加载。比如有个gridview放上百张图片(当然用滑动时候加载也不错,假设没有用这种),每次退出这些bipmap会被回收,重新打开就要重新加载。bitmap占用内存=宽*高*单位 像素占用的字节数,最后一个看格式,argb_8888是4个字节内存缓存  牺牲了宝贵的内存

2015-12-30 11:18:31 285

原创 拖拽排序ListViewdrag-sort-listview使用方法

最近要使用一种拖拽排序ListView,上网找了一下,貌似ListViewdrag-sort-listview不错,于是去看了下用法。先给出github地址:点击打开链接不过自己用的时候各种麻烦,首先,我原本想用android studio的,复制文件夹到与app文件夹同源的目录,然后添加include和compile,syn一下,总是出现‘default’ not found的错,上网搜索了

2015-12-19 11:29:24 1409

原创 ScrollTo(x,y)和ScrollBy(x,y)

这两个方法都是view来调用的,不过与其说是view移动,不如说是手机框移动(按照正负来说),打个比方,就像拿着手机拍照,外面的风景就是view,手机屏幕就是框,当你调用scrollTo(x,y),框的左上角会移动到风景的(x,y)点上。如果你没有调用scrollTo(x,y)而是调用了scrollBy(x,y),框的左上角会移动到“ 原本的位置”再加x,y,要是你原本在(0,0),两个方

2015-12-16 21:29:45 421

原创 关于socket tcp/ip的理解

Http和Socket:http是只有客户端请求服务器才会响应,服务器不能主动发送东西。而socket是双向的,建立连接两边都可以主动发送。http的两种方法:get和postsocket的:tcp 和udp。tcp,是一种提供可靠数据传输的通用协议,udp是一个面向无连接的协议。服务器代码import java.io.BufferedReader;import java.io.

2015-12-08 19:41:44 260

原创 android4.4切换横屏的生命周期w

本来查了一下横屏切换时的生命周期,然后用自己手机测试了一下(nubia z5s,android4.4),发现和网上的不一样http://blog.csdn.net/ryantang03/article/details/7749108mainactivity代码  @Override protected void onCreate(Bundle savedInstanceSt

2015-12-07 21:24:17 311

原创 toolbar+drawerlayout仿知乎侧栏~~步骤

toolbar是android.support.v7.widget的drawerLayout是android.support.v4的,记得引用1.首先修改一下app的theme,在values/styles.xml中加入两个 false true提醒:是windowActionBar不是android:windowActionBar,版本更新了,带androi

2015-11-29 00:41:37 364

原创 新~伸缩ImageView

package com.example.scaleview;import android.content.Context;import android.provider.ContactsContract.CommonDataKinds.Event;import android.util.AttributeSet;import android.view.MotionEvent;impor

2015-11-26 21:01:55 216

转载 实现伸缩的imageview

基本照抄的,原文地址:http://blog.csdn.net/lmj623565791/article/details/23441455这是第一个版本package com.example.win8imageview.customView;import android.content.Context;import android.graphics.Bitmap;import an

2015-11-23 18:52:33 257

原创 service开个线程下载文件,并更新notification中的progressbar

activitypublic class MainActivity extends Activity { Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContent

2015-11-18 23:20:13 424 1

转载 Activity启动模式设置

Activity启动模式设置:        Activity的四种启动模式:    1. standard        默认启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。    2. singleTop        如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会

2015-11-12 14:57:32 241

Android-DraggableGridViewPager.zip

Android-DraggableGridViewPager.zip

2021-03-23

图片浏览器源码

很强大的一个图片浏览器,找来的分享给大家学习

2014-02-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除