自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android 换肤解决方案

https://www.jianshu.com/p/b0253de8ac04这是一篇讲解了三种当下流行的换肤方案文章, 挺好的, 不过不太适合, 下面是我冥思苦想又机缘巧合下产生的方法:首先是关于TextView的文本换色:因为我们APP统一使用一种字体, 所以在项目初期就全部使用的自定义的TextView, 所以换色就比较简单了:public class TTFTextView...

2019-07-02 14:09:55 434 1

原创 给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 103

原创 抽象的下拉刷新/上拉加载控件

AbstractSwipeLayout抽象的下拉刷新/上拉加载控件背景几乎每个APP都会有这个功能,并且设计也是五花八门,似乎在比谁更好看,基于设计的各种需求网上找的现成项目难免不合适,所以我把它做动画的部分给抽象出来,希望能满足大部分的设计需求。预览HeaderView实现下拉刷新需要自定义一个HeaderView,然后实现IHeaderView接口就可以实现各种效果了public class MyHeaderView extends LinearLayout implements IHe

2021-04-28 13:47:26 99

原创 BBT,基础体温(Basal body temperature)记录工具

BBT基础体温(Basal body temperature)记录工具,可以快捷记录体温,可以生成图表和大图(供医生查看)。 下载到相册中的图表应用下载体验:Download BBT_v1.0扫描二维码下载:源码传送门

2021-03-18 14:00:44 496

原创 Android开发时同时在手机上安装测试环境和生产环境的包

build.gradle中加入buildTypes { debug { applicationIdSuffix ".xxx" }}意思就是在包名名后面加.xxx

2020-08-11 13:53:17 455

原创 Android 扩散效果切换页面

最近发现挺多应用使用了这种效果(比如爱奇艺的tv投屏按钮):核心就是通过 PorterDuffXfermode (随便一搜就有好多好文章介绍)实现,看明白了这个图片混合原理就相当简单了。我是自定义了一个SpreadView:public class SpreadView extends View { private Context context; privat...

2020-02-10 11:22:23 395

原创 Git Bash 和 GitLab 使用基础

Git Bash :git clone https://xxx/test.git #克隆项目git checkout -b branch_name # 创建新的分支git add . # 改一顿之后提交所有修改git status # 查看当前所有修改的文件状态git checkout xxx # 取消某个文件的修改git commit -m ‘xxx’ # 提交commit信息gi...

2020-01-14 13:55:17 1153

转载 DecimalFormat格式化数字的国际化问题(有点坑)

默认情况下,DecimalFormat对象使用JVM的语言环境。 我们可以在使用NumberFormat类创建DecimalFormat对象时更改默认区域设置。 在下面的例子中,将为两个不同的区域设置使用相同的模式,可以在输出中看到差异。import java.text.DecimalFormat;import java.text.NumberFormat;import java.uti...

2019-08-01 11:35:01 1877

原创 Glide加载图片的小坑

场景描述:Recyclerview中加载图片, 但是有一部分图片服务器上面没有, 这时候快速滑动RecyclerView的时候, 如果正好上一次图片是拿不到的情况, 过后才返回error, 这时候error就会覆盖当前的图片, 导致错乱。具体代码如下:if (imageResourceID == -1) { Glide.with(activity) ...

2019-05-10 13:37:58 344

转载 Android事件分发机制详解:史上最全面、最易懂

转的外站的一个超级好的文章, 下面是最核心的一张图https://www.cnblogs.com/aademeng/articles/6551337.html

2019-02-28 14:24:37 156

原创 无限循化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 337

原创 从一个 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 474

原创 Recyclerview 自定义 Scroll Bar

如图所示, 完全自定义的ScrollBar, 并且实现了拖动功能布局如下:&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas....

2019-02-13 15:19:04 3591 1

原创 Android Sqlite使用过程中遇到的问题

我遇到的问题如下:当有数据库字段变更的时候, 首先删除表, 然后清空sqlite_sequence, 但是在操作sqlite_sequence表的时候发生crash, " no such table : sqlite_sequence "。然后去研究了下sqlite_sequence这个表, 发现并不是跟随数据库创建而创建, 只有在创建带有自增长主键的表单时才会被创建, 所有要注意了......

2018-10-30 12:59:20 433

原创 Android 8.0.0 TextInputLayout内的EditText上的提示文本引起崩溃

问题描述: 在Android 8.0以后在EditText控件上多了一种自动填充功能, 可以在手机的设置->输入->自动填充功能中打开或者关闭, 但此功能在8.0 TextInputLayout 嵌套 EditText 的情况下使用时会引发崩溃。解决方案: 我们的项目中是重写了EditText, 为了使用特殊字体, 而我解决这个问题就直接重写了EditText的getAutofil...

2018-10-16 14:26:24 968

原创 Android 7.0消息通知超过3条合并引发的问题

问题描述: 在Android 7.0以上的版本, 同一个App的消息通知超过3条时会合并到一起, 经过我对部分机型的测试, 目前只发现小米手机在点击合并到一起的消息时会将消息列表展开, 其他品牌都是启动App, 不能跳转到我们需要的指定页面并且消息不会自动消失。解决方案: 针对Android 7.0以上的设备可以采用如下方法强制不合并消息, 亲测有效NotificationCompat....

2018-10-16 14:15:39 3836 5

原创 仿微信朋友圈预览功能

话不多说,先上图主要功能就是如图中所示,点击图片放大,拖拽图片缩小到列表中图片位置处消失。这个功能其实原理是这样的(我猜):首先点击列表中的图片跳转到新的Acticity进行预览,当然这个Activity必须是透明的; 跳转的时候需要将列表图片的屏幕位置和宽高传递到新Activity中; 新Activity中监听touch事件,当手指下滑足够距离的时候让预览图在当前Act...

2018-05-13 16:46:06 1296

原创 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 123

原创 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 1369 1

原创 Android面试常问问题-Handler机制

昨天面试官问的是一个线程中能不能创建多个Handler对象?本以为对Handler机制挺了解了,可还是懵了,项目里没有遇到过这种情况,首先答案是肯定的,能创建多个,下面再解释下Handler发送消息的过程:首先可以确定的是每个线程中只能有唯一的Looper和MessageQueue,通过ThreadLocal来保证唯一性,当线程中初始化第一个Handler时就会和当前线程的Looper和M...

2018-04-26 08:54:12 181

转载 Activity被回收导致fragment的getActivity为null的解决办法

这两天一直被这个问题困扰,假如app长时间在后台运行,再点击进入会crash,而且fragment页面有重叠现象,让我十分不爽。研究了一天,终于明白其中的原理并加以解决。解决办法如下:    如果系统内存不足、或者切换横竖屏、或者app长时间在后台运行,Activity都可能会被系统回收,然后Fragment并不会随着Activity的回收而被回收,从而导致,Fragment丢失对应的Activi...

2018-04-11 22:18:02 510

原创 退出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 498

原创 评论功能

1.布局&lt;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 392

转载 自定义带一键清除的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 365

原创 拖动控件,最终停靠在屏幕右侧

关键代码: 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 305

转载 WebView开启缓存

当我们加载Html时候,会在我们data/应用package下生成database与cache两个文件夹:我们请求的Url记录是保存在webviewCache.db里,而url的内容是保存在webviewCache文件夹下.WebView中存在着两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即AppCache)。一、网页缓存1、缓存构成/dat

2016-09-01 14:22:44 903

转载 通过html调起app,并传递数据

一、通过html页面打开Android本地的app 1、首先在编写一个简单的html页面html> head> meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> title>Insert title heretitle> h

2016-09-01 13:34:38 1441

原创 WebView加载网页无法弹出对话框

两步解决问题:第一:mWebView.setWebChromeClient(new WebChromeClient());第二:mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url)

2016-08-23 09:35:38 858

原创 activity 切换动画

1.四个动画left_in.xmltranslate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="200" android:fromXDelta="-100.0%" android:fromYDelta="0.0%" android:toXDel

2016-08-16 18:21:22 207

原创 使用 ViewPager + GridView 导致页面卡顿

原因一:滑动的时候需要预加载另外两份数据导致UI卡顿;原因二:在onPageSelected里面做耗时操作,经测试可知onPageSelected是执行刷新UI之前的,所以造成滑动会卡的现象;解决方法:在onPageSelected里面使用new Handler().post或者AsynTask进行延迟初始化;

2016-08-16 16:43:41 684

原创 点击home键之后重新进入程序, fragment为null

如果系统内存不足、或者切换横竖屏、或者app长时间在后台运行,Activity都可能会被系统回收,然后Fragment并不会随着Activity的回收而被回收,从而导致,Fragment丢失对应的Activity。这里,假设我们继承于FragmentActivity的类为MainActivity,其中用到的Fragment为FragmentA。 app发生的变化为:某种原...

2016-08-04 17:08:13 442

原创 自带图片按下去效果的RadioButton

public class EffectRadioButton extends RadioButton { public EffectRadioButton(Context context) { super(context); } public EffectRadioButton(Context context, AttributeSet attrs) {

2016-07-27 13:45:54 696

原创 view第一次执行动画没效果,之后正常

问题描述: view的初始状态为View.GONE, 在执行动画之前设置view.setVisibility(View.VISIBLE);解决方法: 将view的初始状态变成View.INVISIBLE, 完美解决问题.原因简述: INVISIBLE和GONE的主要区别是:当控件visibility属性为INVISIBLE时,界面保留了view控件所占有的空间;而控件属性为GONE时,界面

2016-07-26 17:02:11 633

转载 点击空白处隐藏软键盘

1, 给activity布局文件加入  id    xmlns:tools="http://schemas.android.com/tools"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      android:scrollbars="v

2015-12-15 10:26:38 264

原创 自定义View_加载.gif图片

public class MyGifView extends View {private Movie movie;private long movieStart;public MyGifView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated con

2015-12-13 16:50:22 387

高仿京东收货地址城市选择对话框

高仿京东收货地址城市选择对话框, 选择时弹出省份\城市二级联动对话框,提供回调接口显示数据

2016-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除