自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Android模块化之间的跳转

在使用模块化的开发中,各个模块之间的跳转和正常跳转不一样,为了解决这个问题,我用了最高效的方法,让模块依赖模块,这样就可以调用另一个模块中的类和方法了操作如下点击AS中这个按钮然后点击这个点击一个模块,在点击上方加号点击这个以后选择想依赖的另一个模块,操作完后,我们就可以正常用Intent进行跳转了...

2020-11-27 15:47:52 1196 1

原创 内存泄露OOM

在我们进行编程的时候,会遇到内存泄露的问题,以下我列举了几点和解决方案,希望对大家有用1.Bitmap过大解决办法:二次采样:第一次采样第一次采样我主要是想要获得图片的压缩比例,假如说我有一张图片是200200,那么我想把这张图片的缩略图显示在一个5050的ImageView上,那我的压缩比例应该为4,那么这个4应该怎么样来获得呢?这就是我们第一步的操作了,我先加载图片的边界到内存中,这个加载操作并不会耗费多少内存,加载到内存之后,我就可以获得这张图片的宽高参数,然后根据图片的宽高,再结合控件的宽高

2020-09-03 09:07:06 783

原创 Glide和Fresco

Fresco优点:图片存储在安卓系统的匿名内存, 而不是虚拟机的堆内存中所以, 应用程序有更多的内存使用, 不会因为图片加载而导致 oom, 同时也减少垃圾回收器频繁调用回收 Bitmap 导致的界面卡顿, 性能更高.渐进式加载图片, 支持图片从模糊到清晰加载图片可以以任意的中心点显示在 ImageView, 而不仅仅是图片的中心.图片改变大小也是在 native 进行的, 不是在虚拟机的堆内存, 同样减少 OOM很好的支持 GIF 图片的显示缺点:框架较大, 影响 Apk 体积使用较

2020-09-01 14:18:14 1073

原创 用自定义View实现选座功能

我们在安卓开发中安卓自带的控件满足不了我们的需求,因此我们就需要用到自定义View来满足我们的需求,在这里我要讲解的是自定义View实现选座功能,在安卓中一个会使用自定义View的人一定会开发出与众不同以及美观的项目首先,我展示一下效果以上主要就是我们需要创建一个我们自己的View继承自Viewgroup控件并实现onMeasure以及onDraw方法具体的代码是这样的public class SearView extends ViewGroup { private Context cont

2020-09-01 10:34:00 1886 1

原创 自定义弹框

我们如果想要实现这样的自定义弹框,需要怎么做呢,接下来就是教程首先,我们需要创建一个类继承Dialog下面就是代码package com.bw.movie;import android.annotation.SuppressLint;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget..

2020-08-22 10:42:34 1469 1

原创 AsyncTask基本面试问题

AsyncTask内部也是Handler机制来完成的,只不过Android提供了线程池来执行相应的任务,因为线程池的大小问题,所以AsyncTask只应该用来执行耗时时间较短的任务。比如Http请求,大规模的下载和数据库的更改不适用于AsyncTask,因为会导致线程池堵塞,没有线程来执行其他的任务,导致的情形是会发生AsyncTask根本执行不了的问题。因为AsyncTask实际上是一个线程池,最大只支持个并发。如果有线程长时间占用,且没有空闲,则其他线程只能处于等待状态,会造成阻塞...

2020-08-19 14:24:00 354

原创 handler的源码解析以及面试相关问题

这里写自定义目录标题Handler,Message,looper和MessageQueue构成了安卓的消息机制,handler创建后可以通过sendMessage将消息加入消息队列,然后looper不断的将消息从MessageQueue中取出来,回调到Hander的handleMessage方法,从而实现线程的通信。从两种情况来说,第一在UI线程创建Handler,此时我们不需要手动开启looper,因为在应用启动时,在ActivityThread的main方法中就创建了一个当前主线程的looper,并

2020-08-14 17:21:09 1539

空空如也

空空如也

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

TA关注的人

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