Android基础篇
其子昱舟
挣扎出深渊前,得明白自己处于深渊中。
展开
-
Android广播篇 系统监听:USB的插拔
Android广播篇 系统监听:USB的插拔原创 2022-11-22 20:03:51 · 1409 阅读 · 0 评论 -
Android自定义控件篇 图片进行平移,缩放,旋转
一、自定义属性 <declare-styleable name="SingleTouchView"> <attr name="src" format="reference" /> <!-- 用于缩放旋转的图标 --> <attr name="editable" format="boolean"/> <!-- 是否处于可编辑状态 --> <attr原创 2021-06-22 10:34:23 · 924 阅读 · 0 评论 -
Android自定义控件篇 圆形进度条
Android自定义控件篇 圆形进度条原创 2022-12-09 15:22:50 · 1029 阅读 · 0 评论 -
Android基础篇 TextView 设置行间距字间距
TextView 设置行间距和字间距原创 2022-12-09 15:18:34 · 6476 阅读 · 0 评论 -
Android基础篇 监听Home键
Android监听Home键原创 2022-10-19 21:27:34 · 605 阅读 · 0 评论 -
Android基础篇 AndroidManifest.xml 中 exported属性的概念
1、android:exported 是 Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。2、android:exported 代表是否能被其他应用隐式调用。true允许被启动,false不允许被启动。3、android:exported 默认值是由有无intent-filter决定的,如果有intent-filter,默认值为true,否则为false。4、android:exported = false的情况下,这个Ac原创 2022-05-10 00:10:30 · 1066 阅读 · 0 评论 -
Android基础篇 自定义广播
原创 2021-08-06 10:34:44 · 183 阅读 · 0 评论 -
Android基础篇 Uri
一、概述通用资源标志符(Universal Resource Identifier, 简称"URI")。Uri代表要操作的数据,Android上可用的每种资源 (图像、视频片段、网页等) 都可以用Uri来表示。Uri的通用格式为:scheme: scheme-specific-part #fragment(一)形式scheme://authority path ?query #fragmentscheme://host:port path ?query #fragmentscheme:sc原创 2021-08-06 10:28:59 · 1735 阅读 · 0 评论 -
Android基础篇 屏幕横竖屏切换(layout-land)下篇
默认情况下Activity进行屏幕旋转会自动进行onDestroy并重新onCreate一、非默认情况下在AndroidManifest.xml的Activity中配置 <activity android:name=".ui.activity.XXXXXActivity" android:launchMode="singleTask" android:screenOrientation="portrait" .原创 2021-08-04 17:43:05 · 4403 阅读 · 2 评论 -
Android基础篇 AppCompatImageView中设置src和background的区别
AppCompatImageView中的background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),background是背景,可以同时使用。一、XML布局设置(1)设置src<androidx.appcompat.widget.AppCompatImageView android:src="@mipmap/ic_launcher" android:layout_width="300.原创 2021-07-25 00:51:59 · 5528 阅读 · 3 评论 -
Android基础篇 显示、隐藏状态栏和导航栏
一、AppTheme主题配置全屏属性 <item name="android:windowFullscreen">true</item>二、Activity的setContentView之前设置全屏的flaggetWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);三、控制状态栏显示、隐藏// 隐藏状态栏ge原创 2021-07-21 17:47:18 · 7226 阅读 · 0 评论 -
Android基础篇 onActivityResult
一、方法解析(一) startActivityForResult (Intent intent,int requestCode) 【A活动进入B活动使用】intentrequestCode如果requestCode> = 0,则当Activity退出时,将在onActivityResult()中返回此请求码(二)setResult (int resultCode,Intent data) 【B活动返回A活动使用】resultCodedataresultCode 结果码回原创 2021-07-19 11:33:22 · 1713 阅读 · 0 评论 -
Android基础篇 查询当前运行的APP包名以及查询手机APP包名
一、包名概念 以及 签名的作用包名(Package name)在Android系统中是判断一个App的唯一标识,不同的App可以有同样的名字,但是它的包名不可以相同例如我可以自己编译生成一个App也叫“微信”,但是我App的包名不能为com.tencent.mm(微信的包名为这个),如果我指定的包名和微信一致了,那么我的手机上只允许安装这两个App中的其中一个如果有人恶意做了一个和微信内容一模一样的App,名字和包名都和微信一样,那怎么分辨呢?Android中为了防止这样,还做了一个叫签名的东西原创 2021-06-30 16:35:24 · 3657 阅读 · 0 评论 -
Android基础篇 Android获取屏幕宽高的方法
一、通过获取系统服务的方式WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);int width = wm.getDefaultDisplay().getWidth();int height = wm.getDefaultDisplay().getHeight();二、通过Activity/Fragment来获取(1)ActivityWindowManager wmAct = this原创 2021-06-28 21:43:35 · 990 阅读 · 3 评论 -
Android基础篇 获取图库中图片路径返回不同
一、例子 /** 从相册选择 */ private void choseHeadImageFromGallery() { Intent intentFromGallery = new Intent(); /** 选择图片 */ intentFromGallery.setType("image/*"); intentFromGallery.setAction(Intent.ACTION_GET_CONTENT); sta原创 2021-06-24 17:55:50 · 1479 阅读 · 0 评论 -
Android基础篇 动态生成RelativeLayout 布局
RelativeLayout.LayoutParams relLayoutParams = new RelativeLayout.LayoutParam(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)其中LayoutParams中两个参数分别为:子控件的宽(width),子控件的高(height)通过LayoutParams的 addRule 方法来额外的添加别的规则android.widget.RelativeLayout.Layout原创 2021-06-24 11:41:57 · 1122 阅读 · 1 评论 -
Android基础篇 TextView加载字体包
一、加载字体包在 Android 中,若需要使得某个TextView加载字体包,使用以下方式即可: Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/Bold.otf"); textView.setTypeface(typeFace);二、字体包的位置通过以上方法,可以使得一个TextView加载某种字体包,但是,还有这种需求:部分TextView加载字体包每个TextView加载的字体包不一定一样这时,我原创 2021-06-23 16:54:04 · 866 阅读 · 1 评论 -
Android基础篇 APP启动出现白屏问题
一、问题描述当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个Activity所属的应用创建一个进程(冷启动),但进程的创建与初始化都需要时间,在这个动作完成之前系统要做什么呢?如果没有任何反应的话,如果程序初始化的时间很长,用户可能还以为没有点到相应的位置。但此时所启动的程序还没初始化完,既无法显示程序,又不能停在原处不做任何动作,怎么办?这就有了Starting Window的概念,也可以称之为Preview Window。二、问题原因Starting原创 2021-06-22 16:34:21 · 6247 阅读 · 0 评论 -
Android基础篇 使用SeekBar 变更屏幕亮度和声音音量
一、AndroidManifest.xml根据所需功能自行申请权限<uses-permission android:name="android.permission.WRITE_SETTINGS" /><uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/><uses-permission android:name="android.permission.DEVICE_POWER原创 2021-06-16 09:27:04 · 484 阅读 · 0 评论 -
Android基础篇 监听软键盘回车事件以及回车响应两次
一、布局属性(1)布局设置 : android:imeOptions=“actionSend” <androidx.appcompat.widget.AppCompatEditText android:id="@+id/ed_text" android:hint="请输入文字" android:background="@color/transparent" andr原创 2021-06-09 10:36:00 · 1619 阅读 · 0 评论 -
Android基础篇 Activity之间相互传递Map对象、Bitmap
一、传递Map对象HashMap本身已经实现 Cloneable 、 Serializable(1)Cloneable 接口概念 :创建对象有两种方式: new 和 clone,当一个对象创建过程复杂,我们可以根据已有的对象直接来克隆一份,而不必关系创建的细节(原型模式)(2)Java Object根类默认提供了clone方法:protected native Object clone() throws CloneNotSupportedException;一个本地方法,protected权原创 2021-06-07 11:32:44 · 938 阅读 · 0 评论 -
Android基础篇 BroadcastReceiver广播中弹出Activity或者Dialog BroadcastReceiver系列(二)
一、AndroidManifest.xml文件中添加悬浮窗权限 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />(1)Dialog弹窗(a) 在onReceiver()中弹出对话框(警告框),必须设置对话框的类型,并添加相应权限。dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);(b)动态注原创 2021-06-03 17:35:46 · 997 阅读 · 0 评论 -
Android基础篇 静态注册 and 动态注册 BroadcastReceiver系列(一)
一、静态注册 【仅在安卓7.0及其以下能运行】1、布局文件<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:lay原创 2021-06-03 17:26:02 · 359 阅读 · 0 评论 -
Android基础篇 Handler
一、Handler作用1)传递消息MessageMessage 的构造函数是公共的,但获得其中之一的最佳方法是调用Message.obtain()或Handler.obtainMessage()方法之一,这将从回收对象池中提取它们//1.通过handler实例获取Handler handler = new Handler();Message message = handler.obtainMessage();//源码 :第一种获取方式其实也是内部调用了第二种public final Me原创 2021-06-01 13:47:20 · 1203 阅读 · 2 评论 -
Android基础篇 Intent传递List对象
一、常规传递(一)传递 String 类型的List//传递List对象 , name : 相当于Key唯一标识,取的时候用 value :传递的值 Intent intent = new Intent();intent.putStringArrayListExtra(name,value);接收ArrayList list = getIntent().getStringArrayListExtra(name);(二)传递 Integer 类型的ListIntent int原创 2021-05-18 11:29:03 · 3309 阅读 · 3 评论 -
Android基础篇 监听屏幕锁屏
第一步:自定义ScreenListenerimport android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.PowerManager;public class ScreenListener { private Context mContext转载 2021-05-17 09:33:19 · 949 阅读 · 0 评论 -
Android基础篇 Android历史版本
(一)前言从2009年5月开始,Android操作系统改用甜点来作为版本代号,这些版本按照从C大写字母开始的顺序来进行命名:纸杯蛋糕(Cupcake)、甜甜圈(Donut)、闪电泡芙(Éclair)、冻酸奶(Froyo)、姜饼(Gingerbread)、蜂巢(Honeycomb)﹑冰淇淋三明治(Ice Cream Sandwich)、果冻豆(Jelly Bean)、奇巧(KitKat)、棒棒糖(Lollipop)、棉花糖(Marshmallow)、牛轧糖(Nougat)、奥利奥(Oreo)、馅饼(Pie)原创 2021-05-11 09:40:46 · 895 阅读 · 0 评论 -
Android基础篇 RelativeLayout.LayoutParams
一、前言RelativeLayout.LayoutParams是一个RelativeLayout的布局参数(1) 初始化// 包裹内容 WRAP_CONTENTRelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);// 全部内容 M原创 2021-05-08 16:54:55 · 1496 阅读 · 0 评论 -
Android基础篇 访问Assets文件夹里面的资源【文本、图片、音频、字体包】
一、创建Assest文件夹直接把资源复制粘贴到该文件夹下(1)获取Assets文件夹的管理类AssetManager assets = getAssets();(2)遍历文件夹下的资源列表String[] list = assets.list();(3)访问Assets的绝对路径file:///android_asset二、获取Assets文件夹的文本AssetManager am = getAssets();try{ //"penlaoxi.txt" 资源文本名称以及后原创 2021-04-23 14:26:48 · 5719 阅读 · 0 评论 -
Android基础篇 读取 Assets 文件夹中的文件
一、前言(1)资源类型第一种:res目录下的资源(该资源不会被编译,但是会生成id)第二种:Assets文件夹下的资源文件,又叫原始资源文件(不会被编译,也不会生成id)(2)Assets概念以及创建assets 文件夹用于存储应用需要的文件,在安装后可直接从其中读取使用或者写入本地存储中Android Studio 默认不建立该文件夹,可以手动新建 : app -> src -> main -> assets或者,右键 main -> New -> Folder原创 2021-04-21 15:03:18 · 18780 阅读 · 1 评论 -
Android基础篇 文件读写
一、文件读写权限(1)权限读写 外部存储 中的文件时,需要 读写权限;读写 “ 内部存储 ” 中的文件,“ 不需要 ” 读写权限向外部存储 写入 文件 【write】 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />从外部存储 读取 文件 【read】 <uses-permission android:name="android.permission.READ原创 2021-04-21 14:30:11 · 1261 阅读 · 0 评论 -
Android基础篇 Manager全解
一、结构图二、管理器详解(1)ActivityManager(活动管理器)与系统中正在运行的【所有活动】进行交互1、前提:获取ActivityManager对象的方法是在拥有context的环境下使用下面的方法ActivityManager activityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);2、ActivityManager常用的方法 - getRunningAppProcesses();获取系原创 2021-04-16 14:47:33 · 1663 阅读 · 0 评论 -
Android实战篇 阅读并同意“用户协议”与“隐私政策” 【Kotiln / Java】
一、前言:SpannableStringBuilder1、SpannableStringBuilder和SpannableString的区别类似与StringBuilder、String2、SpannableStringBuilder可以拼接,而SpannableString不可拼接二、主要方法SpannableStringBuilder和SpannableString主要通过使用setSpan(Object what, int start, int end, int flags)改变文本样式原创 2021-04-15 11:51:27 · 6723 阅读 · 0 评论 -
Android基础篇 获取assets的绝对路径
方法一:String path = "file:///android_asset/文件名";方法二: InputStream abpath = getClass().getResourceAsStream("/assets/文件名");若要想要转换成String类型String path = new String(InputStreamToByte(abpath ));转换方法:private byte[] InputStreamToByte(InputStream is) thro原创 2021-03-26 15:34:12 · 5081 阅读 · 0 评论 -
Android基础篇 跳转 “ 系统设置 ” 界面的方法以及Intent参数
1.跳转到系统的辅助功能界面Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(intent);2.跳转到添加帐户界面Intent intent = new Intent(Settings.ACTION_ADD_ACCOUNT); startActivity(intent);3.跳转到系统的包含飞行模式的界面Intent intent = new Intent(Setting原创 2021-03-24 10:39:49 · 1766 阅读 · 0 评论 -
Android基础篇 PopupWindow弹出位置详解
一、前言(1)弹窗选择说明:按目前来说,我们处理弹窗的时候,Google官方提供了两种选择给我们,分别是PopupWindow和Dialog。今天我们的主角是PopupWindow,Dialog的讲解会在后续的文章中推出。(2)PopupWindow位置异常说明:开始正式讲解PopupWindow之前,我想事先说明关于PopupWindow位置异常的一些事情,以帮助大家在解决实际开发中,一些异常事情的问题解惑。PopupWindow 中的 showAsDropDown(View anch原创 2021-03-16 14:15:59 · 5156 阅读 · 0 评论 -
Android基础篇 屏幕横竖屏切换以及生命周期管理 上篇
一、横竖屏切换设置切换屏幕为横屏状态 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);设置切换屏幕为竖屏状态 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);判断屏幕是横屏还是竖屏...原创 2021-03-12 12:00:54 · 803 阅读 · 0 评论 -
Android基础篇 Bitmap.Config 属性
一、关于图片多种格式构成:1、比如 png、jpeg、webp 格式,2、同一张的图片却有不同的大小,即使在图片的宽、高一致的情况下,也会有所差别。这个就是图片内部储存结构导致的常见创建一张位图操作//创建一个Bitmap时,在它的参数里有一个ConfigBitmap.createBitmap(...,Config);图片格式介绍Bitmap的参数类型的源码:(压缩类型,有3种可以选择)//设置压缩格式类型public static enum CompressFor原创 2021-03-04 10:10:31 · 431 阅读 · 1 评论