Android基础
风正吹
Android从入门开始
展开
-
Android 图片合成与图片切割-生成九宫格图
1.列表图片放置在根目录下的Pictures里面。原创 2024-02-26 18:37:49 · 520 阅读 · 0 评论 -
Android 获取Raw资源下的视频帧并存储为图片(获取视频缩略图)
package com.example.testing.utils.audio;import android.content.Context;import android.graphics.Bitmap;import android.media.MediaMetadataRetriever;import android.net.Uri;import androidx.annotation.NonNull;import com.example.testing.utils.L;import原创 2022-05-27 17:16:10 · 861 阅读 · 0 评论 -
Android 属性动画Animator
做个记录,之前项目中用得比较少一、Activity中代码段 /** * 动态生成ValueAnimator * 执行后不断改变view得最小宽度 */ private fun animationBigger() { //属性从300递增到500 val anim = ValueAnimator.ofInt(300, 400).apply { this.duration = 2000 //执行时长原创 2022-05-17 18:06:47 · 604 阅读 · 0 评论 -
Android Messenger跨进程双向传递消息(可传递bundle)
一、服务端AndroidManifest.xml中添加服务<service android:name=".MyMessengerService" android:enabled="true" android:exported="true" > <intent-filter> <action android:name="${applicationI.原创 2022-05-12 13:48:10 · 744 阅读 · 0 评论 -
Android AIDL使用(双向callback,传递自定义类型)
一、服务端结构如下1.aidl文件如下// AidlBean.aidlpackage com.example.aidlservice;// Declare any non-default types here with import statementsparcelable AidlBean;// ICallback.aidlpackage com.example.aidlservice;import com.example.aidlservice.AidlBean;// D.原创 2022-05-11 15:28:05 · 2084 阅读 · 0 评论 -
Android adb常用命令(持续更新)
一、查看内存使用情况adb devices 查看已连接设备adb -s 0123456789ABCDEF shell dumpsys meminfo (查看A所有进程内存使用情况)adb shell dumpsys meminfo 8509 —— 8509是进程编号(查看单个进程内存使用情况二、创建/删除文件夹,Push文件到文件夹1.创建文件夹adb rootadb remountadb shell mkdir /system/app/test2.删除文件夹adb root原创 2022-05-07 12:03:29 · 2845 阅读 · 0 评论 -
Android-Java 排序TreeSet 自然排序+对象排序+中文排序
这里主要讲解的是对象排序(按某个属性或某种规则)首先要明白,TreeSet为什么能实现自然排序?是怎么实现的?它怎么知道谁该排在前面,谁该排在后面?引用类型排序有什么样的要求?这里我就直接一点写了。1.TreeSet排序引用类型,需要引用类型TreeSet 要实现自然排序,或者说它是怎么实现自然排序的,主要还是因为,TreeSet 排序引用类型时时通过compareTo方法的返回值来判断顺...原创 2019-07-20 23:29:21 · 1898 阅读 · 0 评论 -
Android ExpandableListView+ListView开发三级目录
1.一、二级目录adapterpackage com.example.testing.expand;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseExpandableListAdapter;import android.widget.ListVie原创 2022-04-28 17:50:39 · 797 阅读 · 0 评论 -
Android camera2实现后台拍照(无需界面预览)
1.camera2后台工具类import android.Manifest;import android.content.Context;import android.content.pm.PackageManager;import android.graphics.ImageFormat;import android.graphics.SurfaceTexture;import android.hardware.camera2.CameraAccessException;import and原创 2022-04-25 10:21:12 · 6921 阅读 · 5 评论 -
Android 多行EditText点击输入法中得确定键隐藏输入法
1.EditText得xml配置<!-- 如果只是想输入多行,设置android:inputType="textMultiLine", 这里设置为android:inputType="text" --> <EditText android:id="@+id/edt" android:layout_width="match_parent" android:layout_height="40dp" android原创 2022-04-19 15:21:59 · 693 阅读 · 0 评论 -
Android studio中模拟器(avd)隐藏导航栏,调整dpi
一.配置Android studio中模拟器(avd)——隐藏导航栏1.找到文件config.ini【一般在E:\avd\Pixel_2_API_29.avd】2.配置如下:AvdId = Pixel_2_API_29PlayStore.enabled = trueabi.type = x86avd.ini.displayname = Pixel 2 API 29avd.ini.encoding = UTF-8disk.dataPartition.size = 6442450944fast原创 2021-10-14 13:50:03 · 5013 阅读 · 0 评论 -
Android 录音工具AudioRecord使用
1.工具类代码import android.media.AudioFormat;import android.media.AudioRecord;import android.media.MediaRecorder;import android.os.Environment;import android.os.Handler;import android.os.Looper;import androidx.annotation.NonNull;import com.example.fir原创 2021-04-28 09:17:22 · 3240 阅读 · 1 评论 -
Android 视频播放工具类MediaPlayer+TextureView
package com.sdxw.floatbottle.utils.record;import android.Manifest;import android.content.Context;import android.graphics.SurfaceTexture;import android.media.AudioManager;import android.media.MediaPlayer;import android.net.Uri;import android.view.Gra原创 2021-02-19 11:46:47 · 795 阅读 · 0 评论 -
Android Shape渐变色
Android 渐变色项目中有时会遇到渐变色,这里做个记录,之前写过,今天又找了一次:<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@android:color/white"/>原创 2021-02-03 10:06:58 · 246 阅读 · 0 评论 -
Android 简说内存消耗,电池消耗,CPU使用
简说总结如下:具体的研究还需要各位大神自己去研究,这里只说下多次操作结果图分析1.App启动图如上2.页面启动图如上3.滑动页面RecyclerView图如上4.页面停留一段时间后图如上5.IO操作,复制文件图如上6.页面发送请求后图如上...原创 2021-01-19 17:14:56 · 265 阅读 · 0 评论 -
Android 常用工具类集合,持续更新中...
[项目地址](https://github.com/yingtian648/EBrowser)EBrowser基础功能1.annotation+processor 用于编译期生成代码 2.RouterUtil 用于内部路由,服务器下发路由,集中处理内部跳转方便数据统计与跳转调整 3.ScreenRecordService 录屏功能,适配Android 10 自定义控件View1.LoadingView用于展示加载更多,加载中…的状态控件 2.Toolbar用于加载常规的标题栏,可以设置菜原创 2021-01-13 17:41:58 · 2539 阅读 · 0 评论 -
Android 系统drawable图片android.R.drawable.调用
1.android.R.drawable.调用原创 2020-12-01 16:23:33 · 2147 阅读 · 0 评论 -
Android 说说注解到编译时生成代码
开发环境:Java 1.8,Android studio 4.0,主module是支持kotlin模块项目结构:3.注解module不用添加依赖4.注解编译module的build代码如下:apply plugin: 'java-library'dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //生成代码的一个库,比手写方便的多,功能强大,自动导包 implementatio原创 2020-11-10 15:33:56 · 577 阅读 · 0 评论 -
Android 设置输入法[软键盘]将底部布局推上去
效果说明:1适用范围Android 6.0(23)及以上,Android 5.0标题栏不太适配,看注释2.也可以使用popwindow来实现,晚上很多例子了操作如下1.设置Manifest中Activtiy的theme属性如下:<activity android:name=".ui.CommentsActivity" android:theme="@style/search_edit" > <intent原创 2020-09-18 14:22:52 · 1056 阅读 · 0 评论 -
Android 调用系统分享,分享到Facebook
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Build;import android.os.Environment;import androidx.core.content.FileProvider;import com.example.testany.App;import java.io.File;//调用系统分享public原创 2020-09-05 10:09:18 · 2237 阅读 · 0 评论 -
Android 对话框dialog使用注意点(android.view.WindowManager$BadTokenException)
1.android6.0的系统上, (非定制 rom 行为)若没有给予悬浮窗权限, 会弹出该问题, 可以通过Settings.canDrawOverlays来判断是否有该权限2.Service&Application弹出对话框或WindowManager添加view时,没有设置window type为TYPE_SYSTEM_ALERT。需要在调用dialog.show()方法前添加dialog.getWindow().SetType(WindowManager.LayoutParams.TYPE_原创 2020-08-11 17:34:38 · 530 阅读 · 0 评论 -
Android 沉侵式标题栏toolbar,StatubarUtil
1.开发环境:Android stuido4.0 Java1.82.测试设备:红米Note 4x,Oppo k1,Oppo R11(测试正常,标题栏不占用状态栏,状态栏可以正常设置为亮色和神色)3.布局文件:toolbar_layout.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:原创 2020-07-07 19:54:20 · 887 阅读 · 0 评论 -
Android databingding与jetpack的lifecycle使用与比较
Android databingding与Architecture Component的lifecycle使用与比较…明天补充原创 2020-06-04 18:04:00 · 862 阅读 · 0 评论 -
Android 主题切换(theme),语种切换,动态获取自定义属性(attr)值
1.开发环境:Android studio 3.4.0,kotlin实现2.开发准备①在values中添加资源文件【“new“ → "Values resouce file”】定义为”custom_theme_attrs“,内容如下:<?xml version="1.0" encoding="utf-8"?><resources> <!-- 控制app背景色 format:颜色值、资源引用 --> <attr name="custom_att原创 2020-06-03 17:46:53 · 5286 阅读 · 0 评论 -
Android USB拔插检查与文件读取
1.在manifests中添加权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-perm...原创 2020-04-28 15:46:26 · 841 阅读 · 0 评论 -
Android 反编译工具及实现apktool、jd-gui基础使用
实测效果还不错一、环境:windows系统1.已安装java 1.8版本2.下载 apktool.bat 和 apktool.jar【放置于同一文件夹“apkreverse”】附:工具详情链接https://ibotpeaches.github.io/Apktool/install/二、使用1.将需要反编译的APK[test.apk]文件放置于“apkreverse“中2.打开“运行...原创 2020-04-22 16:19:32 · 974 阅读 · 0 评论 -
Android 5.0以后的录屏和截屏(调用系统)
效果如下:开发环境:Android studio 3.4.1,Android 6.0手机一台添加依赖:【我这里用的是eventbus通信,不用可以不添加】//线程通讯eventbusimplementation 'org.greenrobot:eventbus:3.1.1'注1:我这里主要是再录屏的过程中获取了一帧图作为截屏图片,可以播放视频过程中截屏和录屏注2:按启动顺序上代码哈...原创 2020-02-11 16:14:20 · 1715 阅读 · 1 评论 -
Android ViewPagerAdapter无限循环轮播图片的适配器
【我只需要轮播2张图,更多适配需自己去改】1.适配器代码如下package zjhj.com.myapplication.base;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import java.util.List;/**...原创 2019-12-25 11:10:29 · 710 阅读 · 0 评论 -
Android Glide 4.0缓存问题处理圆角加载视频第一帧
1.环境:Android 5.1版本手机,Glide 4.0.0版本问题:我在用一个图片转向方法处理了图片后,使用Glide加载新图片到原来的ImageView发现,几乎不会更新,加载方式如下:Glide.with(activity) .asBitmap() .load(normalShowPicPath) ...原创 2019-10-29 16:37:28 · 3224 阅读 · 1 评论 -
Android及时通讯——配置环信及时通讯注意地方,EvevtBus使用详解,网络请求过程中退出出错处理办法
工作内容:1.EventBus的基础使用。2.配置环信及时通讯(易出错的地方)。3.网络请求过程中退出了该Activity报错的处理办法。学习分享:原创 2016-10-14 17:59:43 · 969 阅读 · 0 评论 -
Android线性布局LinearLayout,及盒模型,weight权值,ScrollView和HorizontalScrollView【内容溢出(内容太多,高度/宽度大于能显示的最大高度/宽度)】
工作内容:LinearLayout布局的嵌套使用Margin:外边距的使用Padding:内边距的使用Gravity:left|center设置内容在容器的左中Weight/weightSum:weight只权重——【用于LinearLayout】当前view占父布局的weightSum的宽度,长度=weight/weightSum注意:组件需用/>扩回,LinearL原创 2016-07-27 08:59:54 · 2482 阅读 · 0 评论 -
Android 通知栏Notification,NotificationManager,RemoteViews使用流程,自定义通知栏样式简介
工作内容:1.通知栏制作全过程(含多个PendingIntent,即:可跳转到多个activity)2.可产生isChecked的组件ToggleButton可添加setOnCheckedChangeListener事件,处理checked事件学习分享:1.通知栏制作过程第一步:初始化//添加通知栏信息 public void startNotification原创 2016-08-09 09:47:59 · 985 阅读 · 0 评论 -
Android第三方框架universal-image-loader[图片缓存加载]及其OOM问题处理【常用】,CardView使用[给列表中项+边框]
工作内容:1.第三方框架universal-image-loader【图片加载】的使用2.CardView使用【给列表中项+边框】学习分享:一、universal-image-loader图片加载,缓存二、CardView使用步骤1.在Android studio中添加控件:“file” → “Project Structure” → “Dependencies原创 2016-09-18 16:15:31 · 1069 阅读 · 0 评论 -
Android中服务(Service)的的生命周期,两种开启服务的方式的不同点,Service与Activity之间的通讯
工作内容:1.Service的生命周期(bindService,startService的区别)2.Service与Activity之间的通讯方式学习分享:准备:定义服务类继承自Service,在manifests中注册如下:(注册在application中与activity并列) 自定义服务类import android.app.Notificatio原创 2016-10-18 15:14:24 · 2595 阅读 · 0 评论 -
Android 广播BroadcastReceiver静态/动态注册,获取系统电量广播【开机广播】,获取网络状态广播,Timer的使用简介
工作内容:1.自定义广播的使用(静态注册和动态注册)2.获取系统广播(电量的广播)3.Timer的使用学习分享:下面代码:先讲解自定义广播的静态注册,动态注册,之后才讲发送广播实例1:自定义广播(静态注册)在AndroidManifest中添加下面代码(与activity同级)receiver android:name=".activity.MyReceiv原创 2016-08-16 09:21:56 · 3205 阅读 · 0 评论 -
Android四大组件之ContentProvider获取系统的联系人及联系人电话
下面是“手机管家”界面讲解及其中所用到技术的分享:1先从欢迎界面开始,这里使用了2个动画效果(alpha透明度从0.7-1.0,translate位移动画,从y的0%-100%(-100%),具体使用可以参考前面的文章。2.欢迎界面进来之后就是主界面:这里从2个方向说——1.界面(最上面是一行是include引入的标题栏,中间圆饼也是一个include引入的布局文件,最下面是一块,原创 2016-08-29 23:03:06 · 2326 阅读 · 0 评论 -
Android中ListView与适配器ArrayAdapter,SimpleAdapter,定义BaseAdapter适配器,ListView添加headerView,ListView滚动到最后一项
1.ListView,ArrayAdapter.简单适配器(主要用于单一的文本)2.SimpleAdapter:构造方法SimpleAdapter(Context context,List> data,reString [] from,int [] to)3.自定义适配器继承BaseAdapter,主要方法:getView(int position,View convertView,Vie原创 2016-08-01 10:41:53 · 1962 阅读 · 1 评论 -
Android中使用软件设计模式之观察者模式、Builder模式、单例模式、简单工厂模式
工作内容:1.观察者模式2.Builder模式3.单例模式4.简单工厂模式学习分享:一、观察者模式【代码参考例1】在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。[观察者和被观察者之间存在“观察”的逻辑关联,当被观察者发生改变的时候,观察者就会观察原创 2016-10-11 00:18:13 · 763 阅读 · 1 评论 -
Android拖动控件的实现,自定义可拖动的LinearLayout
工作内容;1.拖动控件2.自定义可拖动的LinearLayout学习分享:一、拖动控件的实现步骤:【前提:控件在RelativeLayout中,或者在GridLayout中】1.按下图搞懂几个坐标视图宽度 view.getWidth();视图高度 view.getHeight() 橘色线:view.getLeft()蓝色线:view.getRight()原创 2016-10-07 18:31:58 · 17718 阅读 · 6 评论 -
Android分享功能的实现(shared SDK的使用)
share SDK使用步骤:(需要提醒的是微信申请appkey需要大概1周的审核时间)这里主要用的是;Mob官网的分享SDK1.进入官网下载SDK2.按照MOb文档中心的Shared For Android进行集成最容易出错的地方:1.assets文件夹放错位置(sccesst应当在main下右键创建folder选择“assets folder”),把assets文件夹中的文件原创 2016-10-07 14:02:03 · 3298 阅读 · 0 评论