Android
芷月_wyy
产品测试
展开
-
使用viewpager2时Fragment中的设置
背景:这两天在使用viewPager2的时候,我像以往那样把onCreateView和onCreate方法往fragment里面壹佰,初始化控件的时候,getActicity().findviewByid(),对象居然是空指针。难道我和activity绑定失败了?我这样想到,检查adapter,没啥问题呀。查一下资料,viewpager2里面实现了懒加载,那么在fragment里面也必须要有相应的懒加载实现,onResume生命周期是必须的。上代码:public class HomeFragm原创 2022-02-15 15:22:23 · 1977 阅读 · 0 评论 -
androidx采用viewPager2+TabLayout实现fragment切换
依赖引入 implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation "com.google.android.material:material:1.1.0"布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/原创 2022-02-12 02:38:48 · 797 阅读 · 0 评论 -
android非kotlin工程引用kotlin Module
背景:最近的需求需要用到公司那边提供的云服务,给出的实例,我经过反复观察确认那是一个module。并且使用的是kotlin语言。我小白,几乎没用过kotlin,也没咋引入过module到自己的项目里面。瞬间遭到了一个小小的挑战,然后下午踩了不少坑,好在公司大神多,在他们的指导下我总算顺利的引用了。下面,给大家复现一下当时那些奇奇怪怪的报错。library projects cannot set applicationId.我马上开始google,然后就把defaultConfig中对原创 2021-08-04 17:59:38 · 617 阅读 · 2 评论 -
This Activity already has an action bar supplied by the window decor.
报错日志:报错场景:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);/**setcontentview处报错 */ setContentView(R.layout.activity_main); setSupportActionBar(findViewById(R.id.toolBar)).原创 2021-07-30 20:16:20 · 105 阅读 · 0 评论 -
Android将view转换为黑白图片
private Bitmap testAsBitMap(View view) { TextPaint textPaint = new TextPaint(); textPaint.setColor(Color.CYAN);// StaticLayout layout = new StaticLayout(s,textPaint,50,// Layout.Alignment.ALIGN_NORMAL, 1.3f, 0.0f,..原创 2021-07-29 17:12:51 · 458 阅读 · 0 评论 -
大二android实习网易一面+二面面经
一面问题一.介绍一下你自己?回答:从我是谁,我来自哪里,我什么时候开始学的安卓,我的兴趣爱好是什么这几个角度进行了介绍。问题二.做过什么项目?回答:如实回答了我做过的主要项目。问题三.讲述一下mvp和mvvvm?回答:mvp是由mvc改进来的,区别在于view和model不进行直接交互,而是交给presenter来处理。从而降低了代码耦合性。mvp中随着业务的增加,会有非常多UI相关的case。这样就会造成view的接口很庞大。而MVVM就解决了这个问题。通过双向绑定的机原创 2020-06-06 10:06:27 · 541 阅读 · 0 评论 -
自定义EditText自设样式并带有下拉选择框的实现
先上一张效果图:在drawable目录下建一个xml:<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item> <shape xmlns:android="http://schemas.android.com/apk/res/android"原创 2020-05-21 22:34:49 · 714 阅读 · 0 评论 -
Tinker热修复
Tinker核心原理一.基于android原生的classLoader开发了自己的classLoader二.基于安卓原生的aapt,开发了自己的aapt三.微信团队自己基于Dex文件开发了DexDiff算法ART和dalivk的区别ART 的机制与 Dalvik 不同。在Dalvik下,应用每次运行的时候,字节码都需要通过即时编译器(just in time ,JIT)转换为机...原创 2020-03-12 22:28:59 · 257 阅读 · 1 评论 -
Fragment完全总结
一.动态添加fragment第一步,动态创建管理器对象第二步,获取fragment的事务对象并开启第三步,调用事务中相应的动态操作fragment方法的执行第四步,提交事务二.静态添加fragment1、继承Fragment,重写onCreateView决定Fragemnt的布局2、在Activity中声明此Fragment,就当和普通的View一样三.frag...原创 2020-02-19 18:23:03 · 2051 阅读 · 0 评论 -
android事件分发
事件分发定义:用户通过屏幕与手机交互的时候,每一次点击,长按,移动等都是一个事件。事件分发机制:某一个事件从屏幕传递到各个view,由view来使用这一事件(消费事件)或者忽略事件(不消费事件),这个过程的控制事件分发的对象:系统把事件分发为MotionEvent对象,事件分发的过程就是MotionEvent分发的过程。事件的类型:(1)按下(ACTION_DOWN) (2)移动:(A...原创 2020-01-26 20:10:39 · 187 阅读 · 1 评论 -
Activity生命周期与启动模式
一.典型情况下的生命周期 所谓情况下的生命周期指在有用户参与的情况下,Activity所经过的生命周期改变。 在正常情况下,Activity会经过如下的生命周期。(1)onCreate:表示Activity正在被创建,这是生命周期的第一个方法。在这个方法中,我们可以做一些初始化工作。 (2)onRestart:表示Activity正在重新启动。一般情况下,当当前A...原创 2020-01-26 15:21:40 · 293 阅读 · 0 评论 -
Okhttp 用GET方法请求json获取天气信息
package com.example.jvheweather;import androidx.appcompat.app.AppCompatActivity;import okhttp3.Call;import okhttp3.Callback;import okhttp3.MediaType;import okhttp3.OkHttpClient;import okhttp...原创 2020-01-23 21:50:13 · 1334 阅读 · 0 评论 -
设计模式:工厂方法模式学习
使用场景:工厂方法用于多个方法实现了一个接口的情况下。定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。工厂方法模式的简单实现:1,创建抽象工厂2,具体工厂3,客户端调用工厂方法一:参数法工厂方法二:多个函数法工厂方法三:静态方法假定场景:现在有一个图形类的接口,下面有方法决定是计算圆面积或者是三角形面积。参数法...原创 2019-10-24 12:57:55 · 161 阅读 · 0 评论 -
Android多线程之AsyncTask
引言除了Thread本身外,在Android中可以扮演线程角色的还有很多,比如AsyncTask,IntentService,同时HandlerThread是一种特殊的线程。尽管AsyncTask,IntentService以及handlerThread的表现形式都有别于传统的线程,但是它们的本质依然是传统的线程。对于AsyncTask来说,它的底层用到了线程池,对于IntentService...原创 2019-10-15 14:05:07 · 163 阅读 · 0 评论 -
android消息机制
消息处理机制本质:一个线程开启循环模式持续监听并依次处理其他线程给它发的消息。简单的说:一个线程开启一个无限循环模式,不断遍历自己的消息列表,如果有消息就挨个拿出来做处理,如果列表没消息,自己就堵塞(相当于wait,让出cpu资源给其他线程),其他线程如果想让该线程做什么事,就往该线程的消息队列插入消息,该线程会不断从队列里拿出消息做处理。handler的工作原理handler的工作主...原创 2019-10-14 23:14:44 · 145 阅读 · 0 评论 -
APP发布上线
简要步骤1.为APK进行数字签名2.生成签名APK3.发布APK第一步,选择build apk设置数字签名的路径下一步选择v1,ok...原创 2019-10-12 22:32:29 · 183 阅读 · 1 评论 -
EventBus的使用(一)
什么是EventbusEventBus是一款针对Android优化的发布——订阅事件总线。它简化了应用程序内各组件间,组件与后台线程间的通信,将发送者和接收者进行了解耦。EventBus的三要素和四种ThreadMode三要素:event:事件,可以是任意类型的对象subscriber:事件订阅者。在EventBus3.0之前消息处理的方法只能限定于Onevent,onEven...原创 2019-10-12 21:54:27 · 241 阅读 · 0 评论 -
Rxjava总结第二篇
Rxjava的subjectsubject既可以是一个observer也可以是一个observeable,它是连接observer和observable的桥梁。因此,subj可以被理解为subject=observable+observer。rxjava提供了四种subject。1.publishSubjectPublishSubject只会把在订阅发生的时间点之后来自原始observ...原创 2019-10-10 22:40:16 · 184 阅读 · 0 评论 -
OpenGL es 设置屏幕背景为红色
EglHelper.cpp//// Created by lenovo on 2019/9/29.//#include "../log/AndroidLog.h"#include "EglHelper.h"EglHelper::~EglHelper() {}EglHelper::EglHelper() { mEGLContext=EGL_NO_CONTEX...原创 2019-10-05 21:01:26 · 463 阅读 · 0 评论 -
MediaPlayer播放音频与视频
9.2 MediaPlayer播放音频与视频分类Android 基础入门教程本节引言:本节带来的是Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放音视频。它支持三种不同的媒体来源:本地资源 内部的URI,比如你可以通过Content...转载 2019-10-05 19:23:10 · 942 阅读 · 0 评论 -
EditText+Sharedpreference+Intent实现登录,记住密码,跳转界面
我计划为句子迷做一个完整的登录注册功能,但因为用到的东西比较多,所以我就做一点,总结一点。同时因为这是我们的合作项目嘛,我不能自己想写点什么就往上加,我就自己又新建了一个工程来完成这部分功能,等到全做好了,如果讨论了能用,就加到整个项目当中。我目前完成了点击登录,跳转,后续呢还要再加入数据库,把注册过的账号保存起来,在点击登录之后进行核实,还需要为新用户写注册功能,先请大家看看我已经完成的部分吧:...原创 2019-02-07 20:49:40 · 958 阅读 · 0 评论 -
rxjava与泛型通配符(wildcard)
最近,为了充分发挥retrofit的优势,我又去看了rxjava。说是看呢,其实也就是简单的入了个门。rxjava中用到了很多泛型的知识,所以不注意很容易出错。为了把rxjava搞明白,我学习了泛型通配符。一.关于泛型通配符在代码中,用“?”(这个‘?’名为通配符)表示未知类型,通配符可以用作各种情况:1.通配符做参数import java.util.ArrayList;imp...原创 2019-01-30 16:19:11 · 738 阅读 · 0 评论 -
句子迷仿写篇一:实现底部导航栏
我记得上次做项目的导航栏,我使用了RadioGroup,这次就想要换一种方式。考虑了一下,我决定采用Tablayout+viewpager来写,据说这种写法更主流,也更简单。网上实现这种方式的写法也是五花八门,我大致都学习了一下,后来找出了比较简单写的写法,再结合自身的思考,终于实现出了这一部分。将步骤简单概括起来就是:1)写一个包含viewpager和tablayout的总体布局2)设置...原创 2019-01-22 20:26:27 · 343 阅读 · 0 评论 -
Retrofit+Okhttp网络请求:实践纪实
一.框架使用基本步骤1.首先是导入依赖,添加网络权限implementation 'com.squareup.retrofit:retrofit:2.0.0-beta2' implementation 'com.squareup.retrofit:converter-gson:2.0.0-beta2'<uses-permission android:name="...原创 2019-01-24 17:57:41 · 838 阅读 · 0 评论 -
Android Studio开发过程中的小插曲(Wifi热点开发遇到的问题与解决)
今天我参照《Android程序设计经典教程》进行wifi热点开发。身为菜鸡的我依然遇到了一些问题。上一张截图吧,免得大家不知道我说的问题在哪里。第一个问题:mainactivity.java中,我写在wifiAdmin中的部分内容到了这里又不能被识别了。如private wifiAdmin。。。明明是wifiadmin.java中用到的方法呀,为什么在这里就变成红的了呢?解...原创 2018-10-28 18:56:59 · 974 阅读 · 0 评论 -
Android Studio创建工程的小插曲(创建工程失败)
已经好久没有写博客的我今天打算打开Android Studio完成一个关于wifi的小Demo.我按照流程创建好了以后显示:Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.+.Open FileSho...原创 2018-10-28 10:41:45 · 224 阅读 · 0 评论 -
Android视图:imageview(学习篇1)
这篇笔记的内容可能比较散乱因为它不是一次总结而是我听视频课时随手记下的一个提纲。所以如果看到有提到的一些点你可以再百度一下展开理解。imageview即图像视图,主要功能是显示图片,也可以获取裁剪源自于网络的图片,对图片进行放大,旋转,缩小。学习imageview,首先要在res目录下新建一个drawable-xhdpi目录,然后将事先准备好的图片复制到这个目录当中来。scaletyp...原创 2018-08-04 19:22:14 · 329 阅读 · 1 评论 -
SQLite+handler+ SpannableStringBuilder实现注册并与登录界面可来回延时跳转
这篇文章是EditText+Sharedpreference+Intent实现登录,记住密码,跳转界面一文的延续,实现了注册部分并且稍微美化了界面,好吧并没有美化多少,目前想加那种类似空间里面的漂浮装扮,奈何自定义动画学了个半吊子,这部分还没有做下来。完整的项目在GitHub里边:https://github.com/April6866/EditText_part,这篇文章就只总结我在之前的基础上...原创 2019-02-17 18:54:12 · 283 阅读 · 0 评论 -
Canvas初探
一.Canvas 的常用API1.rotate(旋转)2.scale(缩放)3.translate(位移)4.skew(倾斜)5.save(保存)& restore(恢复)当使用到restore方法的时候必须配套使用save,不然运行就会崩溃。二.paint类的常用绘制方法方法 作用 drawRect() 画矩形 drawCircle()...原创 2019-07-16 16:16:10 · 128 阅读 · 0 评论 -
OpenGL es 综述
嵌入式加速的3D制图法标准OpenGL ES是一种免版税的、跨平台的API,用于在嵌入式和移动系统(包括控制台、电话、设备和车辆)上呈现高级2D和3D图形。它由定义良好的适合低功耗设备的桌面OpenGL子集组成,并在软件和图形加速硬件之间提供了灵活而强大的接口。OpenGL ES版本一览OpenGL ES 3.2 -附加的OpenGL功能在本系列的最新版本中,OpenGL ES 3...翻译 2019-10-05 00:23:14 · 591 阅读 · 0 评论 -
android studio配置opengl es环境
step one:勾选C++依赖项step two一直勾选nextstep threefile——>settings——>sdk tools——>勾选cmake,lldb,ndk,如果不选择这里的ndk,也可以单独下载ndkstep four如果是单独下载的ndk,file——>project structure,配置路径:...原创 2019-10-04 22:45:46 · 1932 阅读 · 0 评论 -
设计模式:单例模式学习
单例模式的原理:有些对象我们只需要一个,比如线程池,缓存,硬件设备等。如果多个实例会有造成冲突,结果不一致性等问题。单例模式确保一个类最多有一个实例,并提供一个全局访问点。五种经典的单例模式1,饿汉模式这种方式在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快。public class Singleton{ private static Singleto...原创 2019-09-01 13:40:14 · 126 阅读 · 0 评论 -
SQLite复习总结
SQLite是安卓内置的一款轻量级数据库,不仅支持标准的SQL语法,还遵循了数据库的ACID事务,它比一般的数据库更简单,不需要设置账号密码就能使用。SQLiteOpenHelper类可以非常简单的对数据库进行创建和升级。SQLiteOpenHelper类是一个抽象类,如果想要使用它,就要创建一个自己的帮助类去继承它。SQLiteOpenHelper有两个抽象方法,分别是OnCreate()和On...原创 2019-08-28 00:15:06 · 209 阅读 · 0 评论 -
带有自定义分割线的recyclerview
效果图:activity_main:package com.example.lenovo.my_recyclerview;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support....原创 2019-08-18 10:38:40 · 134 阅读 · 0 评论 -
SeekBar进度条和ImageButton
先展示一张效果图,下面贴出代码:seekbar_style.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#e0c...原创 2019-08-14 23:14:37 · 201 阅读 · 0 评论 -
Android计算器:项目实践(一)
上周搭建了Android环境,这是我第一次尝试的Android项目。*前期知识准备**Java集合-------> 栈与队列------->中缀表达式转后缀表达式(便于计算机处理表达式)&&计算后缀表达式这里附上一个一个栈实现的括号配对。【栈经常用于解析某种类型的文本串,这是一个检测用户输入的一行文本串中分隔符的程序,分隔符有大括号,中括号,小括号,每个...原创 2018-08-03 19:58:59 · 7505 阅读 · 1 评论