Android基础
蓝枫amy
Android开发工程师、HarmonyOS开发工程师
展开
-
Android中好用的工具类收集
1.dp转pxpackage com.zhoujian.drawandxfermode.utilsimport android.content.res.Resourcesimport android.util.TypedValueobject PixelUtil { fun dp2px(dp: Float): Float = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, dp,原创 2021-01-31 09:31:34 · 207 阅读 · 0 评论 -
ScheduledExecutorService定时轮询
package com.zhoujian.demo;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import java.util.concurrent.ScheduledExecutorService;import java.uti...原创 2019-11-18 11:17:34 · 519 阅读 · 0 评论 -
整理相关技术
1.Json解析与XML解析Gson解析和FastJson ,FastJson解析效率高XML解析,SAX解析、DOM解析、Pull解析2.Android中几种数据存储方式(1)使用SharedPreferences存储数据 (2)文件存储数据 (3)SQLite数据库存储数据 (4)使用ContentProvider存储数据 (5)网络存储数据原创 2017-10-10 16:28:30 · 325 阅读 · 0 评论 -
用AlarmManager和Service实现定时任务
在开发过程中,我们可能要每隔一段时间,去执行一次任务,我们就可以用AlarmManager和Service实现定时任务,比如说,每隔5秒钟,请求一次网络数据MainActivity.javapackage com.zhoujian.task.activity;import android.content.Intent;import android.os.Bundle;import android原创 2017-03-27 09:37:24 · 3251 阅读 · 2 评论 -
ViewPager加载大量图片
比如说当我们加载100张图片的时候,我们创建100个Imageview,然后放入集合,这样做很容易内存溢出或者加载速度特别慢。我们可以滑动的时候去加载,滑动一张创建一个Imageview直接上代码主要关注adapter的写法package krelve.view;import android.content.Context;import android.graphics.Bitmap;impor原创 2017-03-17 09:23:04 · 1447 阅读 · 0 评论 -
Android开源数据库框架-LitePal的使用
简介LitePal是一款开源的Android数据库框架,采用了关系映射的模式。LitePal在github上的项目地址:https://github.com/LitePalFramework/LitePal配置LitePaldependencies { .... compile 'org.litepal.android:core:1.5.1'}在app/src/main 目录下新建目录ass原创 2017-03-29 17:38:47 · 2673 阅读 · 0 评论 -
Androoid数据存储方案
文件存储Context类中提供了一个openFileOutput()方法,可以用于将数据存储到指定文件中。 第一个参数是文件名 第二个参数是文件的操作模式文件默认会存储到/data/data/package name/files/目录下MainActivity.javapackage com.zhoujian.persistentdata;import android.content.Conte原创 2017-03-29 14:00:17 · 372 阅读 · 0 评论 -
Bitmap的加载
Bitmap在Android中指的是一张图片。BitmapFactory类提供了四类方法:decodeFile、decodeResource、decodeStream、decodeByteArray,分别支持从文件系统、资源、输入流及字节数组中加载一个bitmap对象。其中decodeFile和decodeResource间接调用了decodeStream方法,这四类方法最终是在Android的底层翻译 2016-12-27 11:16:40 · 493 阅读 · 0 评论 -
Android中的Service
1.Service介绍Service是一种计算型组件,用于在后台执行一系列计算任务,服务有两种状态:启动状态和绑定状态。当服务组件处于启动状态时,Service可以在后台做一些计算,但不需要和外界有直接的交互。注意Service是运行在主线程的,所以后台耗时操作需要在子线程中完成。当Sevice处于绑定状态的时候,外界可以和Service组件进行通信。我们可以采用stopService和unBind原创 2016-12-23 09:53:07 · 314 阅读 · 0 评论 -
Fragment你应该知道的一切
1.Fragment介绍Fragment是Android3.0引入的新API。Fragment代表了Activity的子模块,因此可以把Fragment理解成Activity的片段。作为 Activity 界面的一部分,Fragment 的存在必须依附于 Activity,Fragment的生命周期收到它所在的Activity生命周期控制。另外,support v4 包中也提供了 Fragment,原创 2016-12-23 15:47:40 · 378 阅读 · 0 评论 -
自定义Activity切换动画
默认情况下,Activity的切换动画为,右边滑入,左边滑出,我们也可以自定义Activity切换动画,来改变默认的效果首先,在res目录下新建文件夹anim,用于存放动画文件come_in.xml和come_out.xmlcome_in.xml<?xml version="1.0" encoding="utf-8"?><alpha xmlns:android="http://schema原创 2017-02-17 17:16:57 · 279 阅读 · 0 评论 -
Android简介
Android起源2003年10月份,Andy Rubin创办了Android公司,2005年8月谷歌收购了该公司,2008年谷歌推出了Android系统的第一个版本,经过多年的发展,目前Android已经占据了全球智能手机操作系统70%以上的份额。Android系统架构Android大致分为四层架构:Linux内核层、系统运行库层、应用框层和应用层。Linux内核层 Android是基于Lin原创 2017-03-27 15:44:57 · 649 阅读 · 0 评论 -
Android图文混排
首先上一张图,看看显示效果代码实现自定义ImageSpanpackage com.zhoujian.imagespan;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Rect;import android.g翻译 2017-07-03 21:50:57 · 460 阅读 · 0 评论 -
顶部多Tab切换效果
首先给出一张效果图:布局文件 activity_second.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android原创 2017-08-08 09:22:49 · 607 阅读 · 0 评论 -
RecyclerView实现只有一条数据时显示一个大图布局,其他显示网格布局
ThiredActivity.javapackage com.zhoujian.myapplication.activity;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.GridLayoutManager;impo...原创 2019-09-19 10:45:42 · 377 阅读 · 0 评论 -
BaseRecyclerViewAdapterHelper的基本使用
MainActivity.javapackage com.zhoujian.basequickadapterdemo.activity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutMan...原创 2019-01-22 17:48:26 · 2387 阅读 · 0 评论 -
GridLayoutManager中setSpanSizeLookup方法,设置每一行显示不同的item数量
MainActivity.javapackage recycleviewdemo.zhoujian.com.recycleviewdemo.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v7.wid...原创 2019-01-21 15:34:51 · 6469 阅读 · 2 评论 -
ListView圆角实现
ScondActivity.javapackage mykotlin.zhoujian.com.myapplication.activity;import android.app.Activity;import android.os.Bundle;import android.widget.SimpleAdapter;import java.util.ArrayList;imp...原创 2019-01-18 19:45:25 · 834 阅读 · 0 评论 -
SeekBar 设置任意区间负数
首先上一张图片 布局文件 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:lay...原创 2018-09-19 17:58:02 · 2057 阅读 · 0 评论 -
PopupWindow 设置背景颜色
public void setBackgroundAlpha(Activity activity, float bgAlpha) { WindowManager.LayoutParams lp = activity.getWindow().getAttributes(); lp.alpha = bgAlpha; if (bgAlpha == 1)...翻译 2018-08-27 14:15:47 · 1980 阅读 · 0 评论 -
RecycleView和ListView 实现悬停头部效果和滑动隐藏顶部效果
先上一张效果图 代码实现MainActivity.java package com.xiaopo.flying.suspensionbar.actvity;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;i...原创 2018-08-05 16:52:42 · 1375 阅读 · 0 评论 -
腾讯浏览服务-x5浏览器内核
一、腾讯浏览服务(TBS)的优势1) 速度快:相比系统webview的网页打开速度有30+%的提升;2) 省流量:使用云端优化技术使流量节省20+%;3) 更安全:安全问题可以在24小时内修复;4) 更稳定:经过亿级用户的使用考验,CRASH率低于0.15%;5) 兼容好:无系统内核的碎片化问题,更少的兼容性问题;6) 体验优:支持夜间模式、适屏排版、字体设置等浏览增强功能;7) 功能全:在Htm...原创 2018-03-15 13:22:58 · 1547 阅读 · 1 评论 -
Android中SQLite数据库中空字符串的判断方式
Android中,我们在使用SQLite数据库时,传递一个空指针进去,当你想从数据库获取这个数据时,getString(“key”)获取的值就是“null”,不是空指针null.正确方法使用(null!=value &&!value.equals(“null”) && !value.equals(“”))进行判断翻译 2017-01-11 15:39:20 · 2112 阅读 · 0 评论 -
Activity你应该知道的一切
Activity简介Activity是一种展示型组件,用于向用户直接展示一个界面,并且可以接受用户的输入信息从而进行交互。Activity是最重要的一组组件,对用户来说,Activity是一个Android用户的全部,因为其他三大组件对于用户来说都是不可感知的。Activity的启动由Intent触发,其中Intent可以分为显示Intent和隐式Intent。Activity是具有生命周期的。一个原创 2016-12-22 09:36:49 · 1016 阅读 · 0 评论 -
Android中的传感器
1.代码实现MainActivity.javapackage com.zhoujian.sensor;import android.app.Activity;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardw原创 2016-12-27 15:16:04 · 256 阅读 · 0 评论 -
SharpDrawable的使用
shape_drawable.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="2dp"原创 2016-12-08 09:48:09 · 461 阅读 · 0 评论 -
BitmapDrawable和Bitmap.XML的使用
BitmapDrawable就表示一张图片,但是在xml文件中可以设置更多效果<?xml version="1.0" encoding="utf-8"?><bitmap xmlns:android="http://schemas.android.com/apk/res/android"android:antialias="true"android:dither="true"android原创 2016-12-07 18:11:02 · 3365 阅读 · 0 评论 -
View的基础知识
什么是View? View是Android中所有控件的基类 ViewGroup包含了多个View,ViewGruop也继承View 即View本身可以是单个控件也可以是由多个控件组成的一组控件View的位置参数//这些坐标都是相对于view父容器的//view 左上角的坐标(mTop,mLeft)//view 右上角坐标(mBottom,mRight)mTop = mBtView.g翻译 2016-12-05 11:24:41 · 293 阅读 · 0 评论 -
Android 序列化与反序列化
Android序列化与反序列化原创 2016-11-28 10:37:09 · 334 阅读 · 0 评论 -
SmsManager(短信管理器)
package com.zhoujian.smsmanager;import android.app.Activity;import android.app.PendingIntent;import android.content.Intent;import android.os.Bundle;import android.telephony.SmsManager;import andro原创 2016-11-11 15:53:17 · 659 阅读 · 0 评论 -
TelephonyManager监听电话状态
package com.zhoujian.telephonyManager;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.telephony.PhoneStateListener;import android.telephony.Teleph原创 2016-11-11 13:40:12 · 995 阅读 · 1 评论 -
TelephonyManager(电话管理器)
//注意要加权限<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/>//获取系统的TelephonyManagermTelephonyManager = (Te原创 2016-11-11 11:19:28 · 393 阅读 · 0 评论 -
Android中 PopupWindow 与 ListView 结合使用
ArrayList monthList = new ArrayList(); for (int i = 0; i < monthInt; i++) { monthList.add((i + 1) +" "+ "月"); } //反转集合 Collections.reverse(monthList); tv_month.setOnClickListener(new OnC原创 2016-07-06 18:07:31 · 1192 阅读 · 0 评论 -
Android 中 AlertDialog的使用
AlertDialog.Builder builder = new AlertDialog.Builder(PersonStatisticsActivity.this); builder.setTitle("选择年份"); final String[] years = {"2015", "2016", "2017", "2018", "2019","2020", "2021", "2022原创 2016-07-06 17:47:17 · 276 阅读 · 0 评论 -
LayerDrawable的使用
LayerDrawable对应的标签layer-list ,包含多个item,每个item包含一个Drawable,下面的item会覆盖上面的item,可以实现一些特殊的叠加效果<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android原创 2016-12-08 10:30:26 · 618 阅读 · 1 评论 -
StateListDrawable的使用
StateListDrawable对应selector标签,每个Drawable对应着View的一种状态,系统会根据View的状态选择合适的drawable<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" andro原创 2016-12-08 10:56:28 · 420 阅读 · 0 评论 -
LevelListDrawable的使用
LevelListDrawable对应level-list 标签 表示一个Drawable集合,每个drawable都有一个level,在代码中可以根据不同等级切换不同的drawable<?xml version="1.0" encoding="utf-8"?><level-list xmlns:android="http://schemas.android.com/apk/res/android原创 2016-12-08 14:48:11 · 405 阅读 · 0 评论 -
Android的广播(BroadcastReceiver)
1.BroadcastReceiver简介BroadcastReceiver用于接受程序(包括开发的程序和系统程序)所发出的广播,与应用程序启动Activity、Service相同的是,程序启动BroadcastReceiver也只需要两步创建需要启动BroadcastReceiver的Intent调用Contxt的sendBroadcast()或者sendOrderBroadcast()方法来原创 2016-12-27 10:10:30 · 377 阅读 · 0 评论 -
关于在BroadcastReceiver中启动Activity的问题
1.Android中广播注册的两种方式方式静态注册(在 AndroidManifest.xml 中 ) <!-- 注册自定义静态广播接收器 --> <receiver android:name=".MyBroadcast"> <intent-filter> <action android:name="com.test.broadcast" />原创 2016-12-15 16:05:39 · 5845 阅读 · 1 评论 -
使用Messenger实现进程间通信
Messenger可以翻译为信使,通过它可以在不同进程中传递Message对象,底层是AIDL,一次处理一个请求,不存在并发执行的情形MessagerActivity位于默认进程中,默认进程名为包名:com.zhoujian.androidMessagerService位于私有进程:com.zhoujian.android:romoteandroid:process=":romote"利用Mess原创 2016-11-28 16:39:08 · 523 阅读 · 0 评论