Android
Android_打火机
兢兢业业
展开
-
给ViewPager加一个带滑动指示器的标题
先看效果(有两种滑动效果):布局代码:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools.原创 2021-08-18 11:25:10 · 121 阅读 · 0 评论 -
抽象的下拉刷新/上拉加载控件
AbstractSwipeLayout抽象的下拉刷新/上拉加载控件背景几乎每个APP都会有这个功能,并且设计也是五花八门,似乎在比谁更好看,基于设计的各种需求网上找的现成项目难免不合适,所以我把它做动画的部分给抽象出来,希望能满足大部分的设计需求。预览HeaderView实现下拉刷新需要自定义一个HeaderView,然后实现IHeaderView接口就可以实现各种效果了public class MyHeaderView extends LinearLayout implements IHe原创 2021-04-28 13:47:26 · 108 阅读 · 0 评论 -
BBT,基础体温(Basal body temperature)记录工具
BBT基础体温(Basal body temperature)记录工具,可以快捷记录体温,可以生成图表和大图(供医生查看)。 下载到相册中的图表应用下载体验:Download BBT_v1.0扫描二维码下载:源码传送门原创 2021-03-18 14:00:44 · 561 阅读 · 0 评论 -
Android开发时同时在手机上安装测试环境和生产环境的包
build.gradle中加入buildTypes { debug { applicationIdSuffix ".xxx" }}意思就是在包名名后面加.xxx原创 2020-08-11 13:53:17 · 479 阅读 · 0 评论 -
Android 扩散效果切换页面
最近发现挺多应用使用了这种效果(比如爱奇艺的tv投屏按钮):核心就是通过 PorterDuffXfermode (随便一搜就有好多好文章介绍)实现,看明白了这个图片混合原理就相当简单了。我是自定义了一个SpreadView:public class SpreadView extends View { private Context context; privat...原创 2020-02-10 11:22:23 · 419 阅读 · 0 评论 -
Android 换肤解决方案
https://www.jianshu.com/p/b0253de8ac04这是一篇讲解了三种当下流行的换肤方案文章, 挺好的, 不过不太适合, 下面是我冥思苦想又机缘巧合下产生的方法:首先是关于TextView的文本换色:因为我们APP统一使用一种字体, 所以在项目初期就全部使用的自定义的TextView, 所以换色就比较简单了:public class TTFTextView...原创 2019-07-02 14:09:55 · 450 阅读 · 1 评论 -
DecimalFormat格式化数字的国际化问题(有点坑)
默认情况下,DecimalFormat对象使用JVM的语言环境。 我们可以在使用NumberFormat类创建DecimalFormat对象时更改默认区域设置。 在下面的例子中,将为两个不同的区域设置使用相同的模式,可以在输出中看到差异。import java.text.DecimalFormat;import java.text.NumberFormat;import java.uti...转载 2019-08-01 11:35:01 · 1939 阅读 · 0 评论 -
点击home键之后重新进入程序, fragment为null
如果系统内存不足、或者切换横竖屏、或者app长时间在后台运行,Activity都可能会被系统回收,然后Fragment并不会随着Activity的回收而被回收,从而导致,Fragment丢失对应的Activity。这里,假设我们继承于FragmentActivity的类为MainActivity,其中用到的Fragment为FragmentA。 app发生的变化为:某种原...原创 2016-08-04 17:08:13 · 461 阅读 · 0 评论 -
拖动控件,最终停靠在屏幕右侧
关键代码: int sx = 0; int sy = 0; int x = 0; int y = 0; int finalY = 0; @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { ...原创 2016-09-06 17:10:15 · 320 阅读 · 0 评论 -
仿微信朋友圈预览功能
话不多说,先上图主要功能就是如图中所示,点击图片放大,拖拽图片缩小到列表中图片位置处消失。这个功能其实原理是这样的(我猜):首先点击列表中的图片跳转到新的Acticity进行预览,当然这个Activity必须是透明的; 跳转的时候需要将列表图片的屏幕位置和宽高传递到新Activity中; 新Activity中监听touch事件,当手指下滑足够距离的时候让预览图在当前Act...原创 2018-05-13 16:46:06 · 1324 阅读 · 0 评论 -
Android面试常问问题-Handler机制
昨天面试官问的是一个线程中能不能创建多个Handler对象?本以为对Handler机制挺了解了,可还是懵了,项目里没有遇到过这种情况,首先答案是肯定的,能创建多个,下面再解释下Handler发送消息的过程:首先可以确定的是每个线程中只能有唯一的Looper和MessageQueue,通过ThreadLocal来保证唯一性,当线程中初始化第一个Handler时就会和当前线程的Looper和M...原创 2018-04-26 08:54:12 · 193 阅读 · 0 评论 -
Glide加载图片的小坑
场景描述:Recyclerview中加载图片, 但是有一部分图片服务器上面没有, 这时候快速滑动RecyclerView的时候, 如果正好上一次图片是拿不到的情况, 过后才返回error, 这时候error就会覆盖当前的图片, 导致错乱。具体代码如下:if (imageResourceID == -1) { Glide.with(activity) ...原创 2019-05-10 13:37:58 · 374 阅读 · 0 评论 -
Android事件分发机制详解:史上最全面、最易懂
转的外站的一个超级好的文章, 下面是最核心的一张图https://www.cnblogs.com/aademeng/articles/6551337.html转载 2019-02-28 14:24:37 · 167 阅读 · 0 评论 -
自定义带一键清除的EditText
import android.content.Context;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.text.Editable;import android.text.TextWatcher;import android.util.AttributeSe...转载 2016-09-06 17:14:23 · 376 阅读 · 0 评论 -
退出Activity后,webview依然在播放音频视频
@Override protected void onPause() { super.onPause(); try { if (mWebView != null) { mWebView.getClass().getMethod("onPause").invoke(mWebView, (Object[...原创 2016-10-12 09:55:19 · 528 阅读 · 0 评论 -
Retrofit基本使用
1.添加依赖compile 'com.squareup.retrofit2:retrofit:2.0.2'compile 'com.squareup.okhttp3:okhttp:3.8.1'compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4' 2.使用注解写请求方法 public interface Req...原创 2018-05-01 22:54:30 · 131 阅读 · 0 评论 -
Service更新UI
Service使用发送广播的方式更新UI, 方法如下:首先在启动Service的方法中的线程中发送广播:@Overridepublic int onStartCommand(Intent intent, int flags, int startId) { new Thread(new Runnable() { @Override public void ...原创 2018-04-28 23:05:51 · 1383 阅读 · 1 评论 -
Android 7.0消息通知超过3条合并引发的问题
问题描述: 在Android 7.0以上的版本, 同一个App的消息通知超过3条时会合并到一起, 经过我对部分机型的测试, 目前只发现小米手机在点击合并到一起的消息时会将消息列表展开, 其他品牌都是启动App, 不能跳转到我们需要的指定页面并且消息不会自动消失。解决方案: 针对Android 7.0以上的设备可以采用如下方法强制不合并消息, 亲测有效NotificationCompat....原创 2018-10-16 14:15:39 · 3888 阅读 · 5 评论 -
Android 8.0.0 TextInputLayout内的EditText上的提示文本引起崩溃
问题描述: 在Android 8.0以后在EditText控件上多了一种自动填充功能, 可以在手机的设置->输入->自动填充功能中打开或者关闭, 但此功能在8.0 TextInputLayout 嵌套 EditText 的情况下使用时会引发崩溃。解决方案: 我们的项目中是重写了EditText, 为了使用特殊字体, 而我解决这个问题就直接重写了EditText的getAutofil...原创 2018-10-16 14:26:24 · 985 阅读 · 0 评论 -
Android Sqlite使用过程中遇到的问题
我遇到的问题如下:当有数据库字段变更的时候, 首先删除表, 然后清空sqlite_sequence, 但是在操作sqlite_sequence表的时候发生crash, " no such table : sqlite_sequence "。然后去研究了下sqlite_sequence这个表, 发现并不是跟随数据库创建而创建, 只有在创建带有自增长主键的表单时才会被创建, 所有要注意了......原创 2018-10-30 12:59:20 · 463 阅读 · 0 评论 -
无限循化Banner, ViewPager的两种实现方法
无限循环ViewPager效果图(设置了PageTransFormer,实现了画廊效果的):方法一:在源数据列表头和尾分别补上两个元素, 比如我们源数据列表顺序是[1,2,3], 真正使用到ViewPager中的列表变成[2,3,1,2,3,1,2]源代码如下:首先是xml文件, 为了实现"画廊"效果, ViewPager不能match_parent, 且在ViewPager父...原创 2019-02-28 11:00:17 · 357 阅读 · 0 评论 -
Recyclerview 自定义 Scroll Bar
如图所示, 完全自定义的ScrollBar, 并且实现了拖动功能布局如下:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas....原创 2019-02-13 15:19:04 · 3637 阅读 · 1 评论 -
从一个 Activity 关闭另一个 Activity, 使用广播
BaseActivity 中这样写:public class BaseActivity extends AppCompatActivity { private FinishActivityReceiver mReceiver; private String simpleName; @Override protected void onCreate(Bund...原创 2019-02-13 15:36:25 · 492 阅读 · 0 评论 -
评论功能
1.布局<ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/ll" android:visibility="visible"&g原创 2016-09-12 15:30:58 · 401 阅读 · 0 评论