自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android TextView多行最后一行显示不全

最近发现个奇怪的问题CheckBox与TextView一起放在一个横向LinearLayout中,当TextView文字内容超过一行时,最后一行文字显示不全,给控件加上背景之后,发现TextView与父控件顶部有个间距,但是并没有设置这个间距。解决方案:方案一、LinearLayout加入android:gravity="center_vertical"属性方案二、把LinearLayout修改为RelativeLayout...

2022-04-18 14:50:44 3646

原创 Android Dialog一些设置记录

效果图示例代码:private void initWindow() { //获取Window Window window = getDialog().getWindow(); //设置Window背景色透明 window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); //获取Window属性 WindowManager.LayoutParams attributes =.

2022-03-23 15:54:17 2895

原创 Android vivo手机接入极光推送闪退

最近项目中用到推送功能,选择接入极光推送,可是根据官方文档接入之后,app一启动过一会就闪退,而且是必闪退,翻来覆去看了几遍文档,没有遗漏都开始怀疑人生了。然后定位问题,把极光推送初始化方法注释就不会闪退,问题就在初始化方法这里,最后终于发现问题,因为极光推送中可能会配置开启其他进程,有可能Application onCreate会执行多次,那么极光推送初始化方法会执行多次,导致崩溃,根据这个思路,我们要避免极光推送初始化方法执行多次,判断是UI进程才执行初始化方法,加入判断之后果然不闪退了。

2022-03-09 11:26:19 3573

原创 Android 极光推送华为厂商通道集成问题记录

本人根据极光推送文档华为厂商通道集成指南集成华为厂商通道后,一直并未打印上面的成功集成华为厂商通道的标志,最后发现只在华为开发者平台创建项目及应用,但是没有开通项目推送服务权限,也是被自己蠢哭了,在华为开发者平台开通项目推送服务后,成功打印华为厂商通道的标志,并且测试推送成功。下面是开启项目推送服务权限的步骤1. 前往“项目设置 > API管理”中开启“推送服务”权限。2. 在左侧导航栏选择“增长 > 推送服务”,点击“立即开通”,在弹出的提示框中点击“确定”。3...

2022-03-08 10:41:25 3644

原创 Android 6.0动态权限 shouldShowRequestPermissionRationale

shouldShowRequestPermissionRationale字面意思看是 应该显示请求权限原因已经通过的权限,方法返回为true禁止权限,方法返回为true禁止且不再询问权限,方法返回为false,需要到应用设置中开启权限...

2021-12-27 19:03:10 1291

原创 Android MVVM实践(ViewModel+LiveData+DataBinding)

Andorid常用的开发模式有MVP MVVM,MVP与MVVM不同之处在于MVP中的Presenter持有View层的引用,而MVVM中的ViewModel并未持有View层的引用,而是通过观察者模式完成数据的交互,从而ViewModel层与View层也完成解耦。这里使用Jetpack组件ViewModel+LiveData+DataBinding完成一个MVVM的例子目录结构如上所示:Model层处理网络请求及从数据库获取数据;View层负责UI展示及用户交互;ViewMode.

2021-12-22 10:47:24 1050

原创 Android 网络请求封装(Retrofit+OkHttp+RxJava+AutoDispose),解决网络请求引起的内存泄漏

Retrofit本质上是网络请求的封装库,并没有参与真正的网络请求操作,他为我们提供丰富的注解,用更优雅的方式包装网络请求需要的各个元素;OkHttp完成真正的网络请求操作,接收Retrofit获取的请求地址、请求头、参数等信息发起网络请求,获取网络数据;RxJava处理异步操作,他提供了丰富强大的操作符,使用RxJava来完成网络请求过程中繁琐的线程调度;AutoDispose,使用AutoDispose让网络请求订阅事件与Activity/Fragment生命周期关联,在页面销毁时,取消网络

2021-12-20 11:21:14 2879 3

原创 Android 橡皮擦功能,图层混合模式PorterDuff.Mode实践

先上效果图:使用图层混合模式注意点:1.图层类型设置为软件类型,有些api不支持硬件类型,默认视图是没有开启图层的setLayerType(LAYER_TYPE_SOFTWARE, null);2.创建新的图层来完成混合模式的运算(离屏绘制),然后更新到原始图层。如果直接在原始图层进行混合模式运算,原始图层的某些操作可能会影响混合模式运算结果,得不到预期的效果//离屏绘制int layer = canvas.saveLayer(0, 0, width, height, pa..

2021-11-25 10:34:32 1765

原创 Android Camera 计算合适的预览分辨率,解决预览拉伸问题

Android自定义相机过程中经常遇到相机预览画面拉伸的问题,这种情况是因为预览控件比例与当前相机预览分辨率比例不一致导致的,想要预览画面正常就要找到与预览控件比例最接近的相机预览分辨率,这里记录一下Camera获取最佳预览分辨率的方法/** * 获取最佳预览分辨率,解决预览拉伸问题 * * @param supportedSize 相机支持的预览分辨率 * @param screenResolution 控件宽高或屏幕宽高 * @return 与预览控件比例最接近预览分辨率 */

2021-11-17 17:36:35 2952

原创 Android代码修改ConstraintLayout约束关系

//代码修改ConstraintLayout约束关系ConstraintSet set = new ConstraintSet();//克隆父布局(ConstraintLayout)的约束关系set.clone(parentView);//清除childView布局文件里设置的某个约束set.clear(childView, ConstraintSet.TOP);//设置新的约束关系,下面效果相当于 app:layout_constraintBottom_toBottomOf="parent".

2021-11-12 00:14:55 4089

原创 Andorid 属性动画 ObjectAnimator 从一个控件位置平移缩放到另一个控件位置

private void translateScaleAnim(ImageView imageView, FrameLayout frameLayout, long duration) { AnimatorSet animatorSet = new AnimatorSet(); //平移动画 ObjectAnimator translationX = ObjectAnimator.ofFloat(imageView, "translationX", 0, f.

2021-10-18 17:24:32 2542

原创 Android view.setX() view.setY() layoutParams.topMargin layoutParams.leftMargin

onCreate中使用view.setX(380); view.setY(380);设置控件的位置,布局完成之后打印结果为:onCreate中使用layoutParams.topMargin = 380; layoutParams.leftMargin = 380;设置控件的位置,布局完成之后打印结果为:测试代码如下public class SecondActivity extends AppCompatActivity { @Override prote...

2021-10-14 18:34:26 1154 1

原创 Android webview 提示net::ERR_CACHE_MISS

//设置缓存模式为WebSettings.LOAD_CACHE_ELSE_NETWORKwebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);setCacheMode默认模式为WebSettings.LOAD_DEFAULTLOAD_DEFAULT优先从缓存获取未过期的资源加载,否则从网络加载资源;LOAD_CACHE_ELSE_NETWORK优先从缓存获取资源加载,即使缓存已过期,否则从网络加载资源.

2021-09-02 15:18:43 1071

原创 java定时每天指定时间执行任务

/** * @param time 每天几点执行定时任务 24小时制时间 例: 08:00:00 20:00:00 * @throws ParseException */private void timing(String time) throws ParseException { int hour = Integer.parseInt(time.substring(0, 2)); SimpleDateFormat format1 = new SimpleDateFormat

2020-11-17 17:06:29 6340

dex2jar-2.0

使用方法:1. 解压文件得到dex2jar-2.0文件夹 2. classes.dex文件拷贝到dex2jar-2.0目录下面 3. 打开cmd,cd进入dex2jar-2.0目录输入命令 d2j-dex2jar.bat classes.dex回车,dex2jar-2.0目录下就生成jar包

2017-09-12

空空如也

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

TA关注的人

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