![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android基础
文章平均质量分 63
NO Exception?
分享内容!
展开
-
AIDL 总结
1.特点AIDL定义客户端与服务均认可的编程接口,以便二者使用进程间通信 (IPC) 进行相互通信。在 Android 中,一个进程通常无法访问另一个进程的内存。因此,为进行通信,进程需将其对象分解成可供操作系统理解的原语,并将其编组为可供您操作的对象。编写执行该编组操作的代码较为繁琐,因此 Android 会使用 AIDL 为您处理此问题。**注意:只有在不同应用的客户端通过 IPC 方式访问服务,且在服务中进行多线程处理时,才有必要使用 AIDL。如果您无需跨不同应用执行并发 IPC,则应通过原创 2022-03-24 10:08:40 · 2879 阅读 · 0 评论 -
Android 混淆总结
1.背景为了尽可能减小应用的大小,您应在发布 build 中启用缩减功能来移除不使用的代码和资源。启用缩减功能后,您还会受益于两项功能,一项是混淆处理功能,该功能会缩短应用的类和成员的名称;一项是优化功能,该功能会采用更积极的策略来进一步减小应用的大小当您使用 Android Gradle 插件 3.4.0 或更高版本构建项目时,该插件不再使用 ProGuard 执行编译时代码优化,而是与 R8 编译器协同工作,处理以下编译时任务:代码缩减(即摇树优化):从应用及其库依赖项中检测并安全地移除不使原创 2022-03-18 14:06:07 · 3761 阅读 · 0 评论 -
webview 和JS交互且传参
webview 和JS交互且传参1.native 给JS 传参1.1 mWebView.loadUrl这种形式没有返回值,调用js的gotoJS方法。另外还有重载方法loadUrl (String url, Map<String, String> additionalHttpHeaders),可以添加header数据。另外官方推荐使用兼容性更好的evaluateJavascript(String, ValueCallback).mWebView.loadUrl("javascrip原创 2021-11-25 11:46:43 · 4352 阅读 · 0 评论 -
TextView 换行且显示省略号
TextView 以往使用singleLine= false,但是目前废弃了。使用maxLines来指定行数,且固定textview的width。 <TextView android:id="@+id/product_des" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxEms="12"原创 2021-09-29 12:04:33 · 286 阅读 · 0 评论 -
recyclerview 点击滚动到顶部
1.背景recyclerview不像listview一样,有精确的返回到固定位置的方法。recyclerview触发指定item到顶部,也是通过两部分处理的。1.让指定的条目出现到屏幕里,然后计算该条目距离父容器顶端的距离,2.然后执行向上滑动指定距离,也就实现了滑动到顶部的需求。2.code//如点击触发,该pos的item 滑动到顶部 smoothMoveToPosition(recyclerView, pos);//根据不同的情况,让条目滚动到屏幕内,然后计算偏移量。private原创 2021-08-19 12:40:24 · 2398 阅读 · 0 评论 -
XmlPullParser 解析XML
1.使用XmlPullParser解析xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="ht原创 2021-03-22 22:42:35 · 142 阅读 · 0 评论 -
android 实现沉浸式
1.概述所谓沉浸式是应用程序的主题样式和系统顶部的状态栏风格融为一体,体验感增强,沉浸式有多个版本的处理方法,此处仅仅使用于Android5.0之上。2.步骤流程:1.onCreate方法里配置if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LA原创 2020-09-04 21:50:21 · 397 阅读 · 0 评论 -
android 倒计时的几种实现方式
1.Handler mTime.setText(times + "s"); Message obtain = Message.obtain(); obtain.what = 99; handler.sendMessageDelayed(obtain, 1000); int times = 5; Handler handler = new Handler() { @Override public void handleMes原创 2020-06-05 14:56:24 · 734 阅读 · 0 评论 -
Android Drawable 分类
Drawable 是一种可以在Canvas上进行绘制的一种抽象资源。可以表达颜色、图片。通常都是通过xml来定义,当然也可以通过代码来定义。drawable内部的宽高元素比较重要。getIntrinsicWidth getIntrinsicHeight .优点:使用简单。比自定义view成本更低;其次,非图片类型的drawable占用内容空间小。1.BitmapDrawable<?xml version-"1.0" encoding-"utf-8"?><bitmapxmlns:a原创 2020-05-28 22:58:00 · 156 阅读 · 0 评论 -
Android环境下 HtmlUnit 简单使用
1.HtmlUnit 配置依赖 implementation 'net.sourceforge.htmlunit:htmlunit:2.40.0'2.常见问题More than one file was found with OS independent path工程生成了不止一个META-INF/DEPENDENCIES文件,看起来是因为多个 jar 包里包含了同样的文件(DEPENDENCIES.txt),导致打包时因为担心相互覆盖问题而提示出错在报该编译错误的module的build.g原创 2020-05-26 23:17:15 · 1621 阅读 · 2 评论 -
自定义View --滑动实现的几种方式
在做一个自定义view 跟随滑动而滑动的效果,拖动的效果有几种实现形式,接下来浅谈下各个实现形式。1.onLayoutlayout 方法是布局的意思,当拖动的获取当前的坐标,然后通过layout 来实时布局view的位置。public void onTouchEvent(MotionEvent event){ int x = event.getX(); int y = event.getY(); switch(event.getAction()){ case MotionEvent.ACTI原创 2020-05-21 18:39:39 · 497 阅读 · 0 评论 -
获取屏幕宽高 dp px log
1、常用的工具类有:2、对dp px 转换3、获取屏幕宽高public class AppScreenMgr { /** * Get the width of the screen. *获得屏幕宽度 * @param context * The context to use. Usually your * ...原创 2020-05-07 22:41:07 · 374 阅读 · 0 评论 -
android实现微信摇一摇
1.布局震动权限:<uses-permission android:name="android.permission.VIBRATE"/><?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android...原创 2020-05-06 21:24:28 · 476 阅读 · 0 评论 -
ImageView tint 属性及PorterDuff.Mode
概念偶然机会要给一个图片添加一个蒙层,半透明-淡淡的雾状效果。于是用到setColorFilter,这个颜色过滤器使用到了android.graphics.PorterDuff.Mode ,于是去官网看下具体使用。很多文章把tint解释为着色。Tint: 着色,就是当前设置的颜色和原目标关联,形成最终的UI效果。Mode:原数据和目标数据它们之间处于什么样的关系。 String ti...原创 2020-04-08 17:39:20 · 509 阅读 · 0 评论 -
Retrofit 添加网络缓存
public static void getNetData( String name, final CallBack callBack){ final OkHttpClient okHttpClient = new OkHttpClient.Builder() .addNetworkInterceptor(new NetWorkIntercep...原创 2020-04-08 16:20:37 · 534 阅读 · 0 评论 -
Android动画-属性动画
属性动画所谓属性动画,就是改变对象Object的属性来实现动画过程。属性动画是对View的动画的扩展,通过它可以实现更多漂亮的动画效果。同时属性动画的作用对象不仅仅是View,任何对象都可以。属性动画的作用效果就是:在一个指定的时间段内将对象的一个属性的属性值动态地变化到另一个属性值。ObjectAnimatorObjectAnimator .ofFloat(mIm...原创 2020-03-17 09:58:27 · 267 阅读 · 0 评论 -
android 动画-补间动画
补间动画包含渐变Alpha、旋转Rotate、缩放Scale、平移Translate布局代码<?xml version="1.0" encoding="utf-8"?><!-- duration 执行动画的时间 fillafter 执行完动画后,保持最后的效果--><set xmlns:android="http://schemas.android.co...原创 2020-03-17 09:56:59 · 898 阅读 · 0 评论 -
Android-序列化两种方式Serializable和Parcelable
概述对象的序列化 : 把Java对象转换为字节序列并存储至一个储存媒介的过程。对象的反序列化:把字节序列恢复为Java对象的过程。SerializableSerializable使用Serializable 支持序列化和反序列化,使用很简单,实现Serializable 接口就行。但是Androidstudio默认不会提示生成serialVersionUID。public class ...原创 2020-03-16 11:32:33 · 308 阅读 · 0 评论 -
android ConstraintLayout约束布局 详解
layout_constraintLeft_toLeftOf第一个left: 代表是自身组件第二个toLeft:代表对方组件举例:app:layout_constraintLeft_toRightOf="@+id/b" 代表自身的左边依赖对方组件(b)的右边。以下控件同理。layout_constraintLeft_toLeftOflayout_constraintLeft_toRigh...原创 2020-03-11 19:47:54 · 1470 阅读 · 1 评论 -
android 自定义view网格布局,可以设置列数
有时候做项目,需要自己去实现网格样式的布局,但是又不能直接使用gridView或者recyclerview。因为他们也有局限性。实现得效果![在这里插入图片描述](https://img-blog.csdnimg.cn/20200311152853959.png w=211x422) private int columnNum = 2; private static int ...原创 2020-03-11 15:31:25 · 974 阅读 · 0 评论 -
Android 坐标系
View获取自身宽高getHeight():获取View自身高度getWidth():获取View自身宽度View自身坐标通过如下方法可以获得View到其父控件(ViewGroup)的距离:getTop():获取View自身顶边到其父布局顶边的距离getLeft():获取View自身左边到其父布局左边的距离getRight():获取View自身右边到其父布局左边的距离getBo...原创 2020-03-08 22:08:32 · 90 阅读 · 0 评论 -
协调者布局(CoordinatorLayout) -- 自定义behavior
协调者布局(CoordinatorLayout) – 自定义behavior原创 2020-03-06 21:05:49 · 735 阅读 · 0 评论 -
GreenDao 数据库升级
在版本迭代时,我们经常需要对数据库进行升级,而GreenDAO默认的DaoMaster.DevOpenHelper在进行数据升级时,会把旧表删除,然后创建新表,并没有迁移旧数据到新表中,从而造成数据丢失。这在实际中是不可取的,因此我们需要作出调整。下面介绍数据库升级的步骤与要点。1、复制MigrationHelper到项目,网上有不少MigrationHelper的源码,这里采用的是https...原创 2020-02-24 13:13:04 · 1948 阅读 · 0 评论 -
Android Notificatin 通知
通知的简单使用1-通知渠道:android 8.0 必须设置通知渠道,否则通知不会显示。2-通知图标问题:android 5.0 谷歌为了统一风格,统一使用背景为透明的图标,否则显示一个白色图标。如图 // 获取通知的管理器 NotificationManager notificationManager = (NotificationManager) getSyste...原创 2019-12-16 18:34:36 · 213 阅读 · 0 评论 -
引导页-圆点-指示器 滑动计算
// 动态得出圆点的个数,距离,并添加到线性布局中for (int i = 0;i<mImages.length;i++){ ImageView iv = new ImageView(this); iv.setBackgroundResource(mImages[i]); mImageViewArrayList.ad...原创 2019-10-29 15:54:27 · 141 阅读 · 0 评论 -
LayoutInflater中inflate方法参数说明
public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot) resource 加载的资源viewgroup 加载的资源要依附的父布局attachToRoot 资源是否要依附在父布局root!= null, attachToRoot=false,表示不将第一个...原创 2019-10-28 17:32:08 · 421 阅读 · 0 评论