5 _bigin

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 21w+

按比例适配安卓屏幕的方案(今日头条的适配方案)

目录一、概念理解二、如何适配三、使用第三方框架四、预览设备的选择一、概念理解首先理解一些概念:px:就是像素,比如手机分辨率 1920*1080 指得就是分辨率。dpi:一英寸所占用的像素点。density:个人理解是像素比。安卓规定 dpi 为160 的时候,px跟dp 就是1:1。而density的计算公式就是density = dpi / 160。dp:安卓定义的一个抽象的单位,实际并不存在,为了统一各个设备之间尺寸适配的问题而出现的。计算公式:dp = px / density 。从

2020-09-25 10:14:24

NestedScrollView嵌套RecyclerView内存占用过大?用RecyclerView 添加HeaderView 以及FooterView吧

我们就新建一个中间层的适配器,来用装头部跟尾部:class WrapRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{// private ArrayList<String> datas; private RecyclerView.Adapter mRealAdapter;//真实的列表适配器 private ArrayList<View> mHeaderV

2020-08-27 17:36:31

安卓性能优化(最全)——内存优化

内存优化一、防止内存泄露1、单例模式导致的内存泄露2、静态变量导致的内存泄漏3、非静态内部类导致内存泄漏4、未取消的注册或者回调造成内存泄漏5、Timer 和 和 TimerTask 导致内存泄露6、集合中的对象未清理造成内存泄露7、资源未关闭或释放导致内存泄露8、属性动画造成内存泄露9、WebView 造成内存泄露二、资源的复用1、bitmap的复用2、数据过长时,不要使用NestedScrollView嵌套RecyclerView三、减少内存开销1、使用轻量的数据结构2、尽量不使用枚举类型3、Bitma

2020-08-27 17:00:40

安卓MVP框架

地址:GitHub地址封装的还是挺多东西的,我也就不一一说了。可以去仓库看看,直接看源码吧。BaseMvpActivity:public abstract class BaseMvpActivity<T extends IBaseContract.IBasePresenter> extends AppCompatActivity implements IBaseContract.IBaseView, IListener,View.OnClickListener {

2020-08-21 16:47:40

编写自定义flutter插件(安卓篇)

最近在搞flutter插件化。感觉插件化开发还是很有必要,其实无论是否真的有用到跟原生的交互,只要你把某写功能模块分成一个个插件,后期无论是拓展还是复用都更加方便。只要引入一个个插件就可以了。看一下怎么来创建flutter插件吧。选择新建flutter plugin项目。这里如果要跟安卓原生交互的话。kotlin不熟悉的就不要勾选这个勾了。因为勾了默认mainActivity就会用kotlin 生成了。项目建好后就比较简单了。如果是要跟原生交互的话,就直接在android 子项目中开发就行了。明

2020-07-24 14:33:02

flutter开发引用安卓原生view

flutter SDK 1.12版本之后,默认的MainActivity 都是继承 io.flutter.embedding.android.FlutterActivity 而 1.12版本之前是继承io.flutter.app.FlutterActivity 这两个版本注册的方式是不同的,下面来仔细看一看。举个例子:在flutter中调用安卓原生的view组件。public class TestView implements PlatformView { private TextView

2020-07-17 18:29:08

安卓自定义流式布局

废话少说直接上代码,对自定义view有一定了解的同学想必都能看懂:package com.example.text.view;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.View;import android.view.ViewGroup;/** * <p></p > * <p>&

2020-07-02 21:26:55

CoordinatorLayout 的使用

布局代码如下:<?xml version="1.0" encoding="utf-8"?><android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_pare

2020-06-29 16:58:37

安卓进程保活

进程保活的方式安卓杀死进程的一些机制保活的一些方式一像素保活法前台服务保活法安卓杀死进程的一些机制安卓中的进程主要分为以下五种:1、前台进程Foreground Process2、可见进程Visible Process3、服务进程Service Process4、后台进程Background Process5、空进程Empty Process安卓的机制是在内存达到一定的阈值时就会杀死对应的等级进程。查看阈值的方法如下图(单位是4KB)。当然,这是在不同的定制系统上会有差异,手机厂商

2020-06-10 10:13:03

HandlerThread的使用

正如前面所说,线程间通信的时候,比如Android中常见的更新UI,涉及到的是子线程和主线程之间的通信,实现方式就是Handler+Looper,但是要自己手动操作Looper,不推荐,所以谷歌封装了HandlerThread类(类似于AsyncTask类)。上代码,具体实现:public class MainActivity extends AppCompatActivity { Handler mainHandler,workHandler; HandlerThread mHan

2020-05-20 22:55:25

安卓事件分发流程

分发流程首先从底层开始 activity->viewGroup-> view先看activity ,点击时首先调用dispatchTouchEvent方法:public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { onUserInteraction(); } if (getWindow().superDispa

2020-05-20 22:51:59

Handler机制

Handler 机制Looper.prepare()Handler创建Looper.loop()发送消息Handler机制,主要牵涉到的类有如下四个,它们分工明确,但又相互作用Message:消息Hanlder:消息的发起者Looper:消息的遍历者MessageQueue:消息队列下面我们从Handler的套路,来分析他们的作用而Handler 的创建必须要有 Looper 对象,我们来看看Looper 的流程:Looper.prepare() public static void p

2020-05-20 18:47:19

跨进程使用SharedPreference共享数据

首先,两个应用要有相同的sharedUserId:<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.text.uid" android:sharedUserId="com.text.jzh"> <application android:allowBackup="true" android:icon="@mipmap/i

2020-05-19 23:13:22

ConstraintLayout 的用法

1、app:layout_constraintLeft_toLeftOf//Constrains the left side of a child to the left side of a target child (contains the target child id).表示此控件的左边框与某个控件的左边框对齐或者在其右边2、app:layout_constraintLeft_toRightOf//Constrains the left side of a child to the rig

2020-05-19 18:24:10

RecyclerView 一些知识点

RecyclerView 一些知识点一、设置元素边距padding:分割线标签二、设置左右滑动删除以及长按上下移动一、设置元素边距由于RecyclerView 没有像listview一样的divider 属性,所以需要用recyclerView.addItemDecoration() 方法来设置 元素之间的间距。自定义类 继承 ItemDecoration。主要重写三个方法:public void onDraw(Canvas c, RecyclerView parent, State state)

2020-05-19 18:17:18

ViewPager嵌套Fragment时实现懒加载

一、为什么要懒加载ViewPager 嵌套 Fragment 使用时, 所有Fragment 会被创建,无论是否对用户可见,都会调用接口加载数据,显然浪费流浪跟内存。二、如何实现懒加载// A code block/** * <p></p> * <p></p> * * @author jinzhenhua * @version 1.0 ,create at:2019/11/27 9:02 */public abstract class

2020-05-19 12:01:59

Android Studio 3.0找不到Android Device Monitor

前提:一定要root找到SDK目录文件夹tools下,然后输入命令montior,或者直接双击montior.bat文件。就会出现界面:然后进入skd/D:\SDK\platform-tools中执行命令: adb shell ,解决办法:要想查看data文件首先要获取手机root权限,成功root后,修改data权限即可查看data里面的数据库。data权限修改办法:1.Open cmd2.输入’adb shell’,回车(adc.exe位于SDK下的platform-tools文件夹下,需要

2020-05-18 21:34:07

recyclerView 中复用editview 时,添加addTextChangedListener事件每个item都触发了

将edittext.addTextChangedListener写在edittext.setOnFocusChangeListener hasFocus为true下面(即只有获取到焦点时才添加监听器)et_vlaue.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(hasFoc

2020-05-18 21:28:14

安卓版本号对应的API版本号

2020-05-18 21:24:06

ScrollView嵌套RecyclerView或listview相关问题

ScrollView嵌套RecyclerView滑动冲突相关问题listview高度设置方法1:自定义listview :重写onMeasure 方法方法2.手动设置Listview的高度,获取每一行的高度,然后手动设置解决listview 放在ScrollView 中时滑动冲突:每次点击listview时让ScrollView 获取焦点listview高度设置方法1:自定义listview :重写onMeasure 方法// An highlighted block @Override

2020-05-18 21:20:06
勋章 我的勋章
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。