首页 文章 精选 留言 我的

精选列表

搜索[个人知识库],共10000篇文章
优秀的个人博客,低调大师

【个人学习JAVA---学后的梳理】四、简单的一条语句

程序最小单位,语句 积土成山,风雨兴焉... 一条语句,是程序的开始。条条简单语句的积累,就是复杂程序的组成。那么,语句是怎样构成的?语句的基本单位就是表达式与运算符。 1. 运算符 Java的运算符可分为4类: 算术运算符、关系运算符、逻辑运算符和位运算符。 1.1. 需格外注意的运算符 '/'是除法运算符,而'%'为求余(另称:求模)运算符,前者返回除运算后的结果,后者返回余数结果。 关于自增、自减运算符: 其运算顺序探究 格式 说明 、 i++ 先参与运算,后自增 i = i++ +j; i-- 先参与运算,后自减 上面的算术的结果说明: ++i 先自增,后参与运算 在i+j后,将加法结果赋值给i前,先完成了i的自增操作, --i 先自减,后参与运算 而后加法结果赋值给i,这条语句运行完毕。 位移运算符:<<与>>是位左移运算符与位右移运算符。左移运算符“m<< n”表示将m的二进制表示左移n位。左移n位的时候,最左边的n位将被丢弃,同时在最右边补上n个0;右移反是之。例子:10001010 << 3 = 01010000。位逻辑运算符:&、|、^是位运算符AND、位运算符OR、位运算符XOR。 位运算符 运算结果1 运算结果2 运算结果3 运算结果4 与 & 0 & 0 = 0 0 & 1 = 0 1 & 0 = 0 1 & 1 = 1 或 0 & 0 = 0 0 & 1 = 1 1 & 0 = 1 1 & 1 = 1 非 ^ 0 & 0 = 0 0 & 1 = 1 1 & 0 = 1 1 & 1 = 0 2. 表达式 表达式是由常量、变量或是其他操作数与运算符所组合而成的句子。 2.1. 条件表达式 条件表达式就是:" <能表示真假值的表达式>? <表达式或变量> : <表达式或变量>"。 结束 2019年8月6日 16:50:26

优秀的个人博客,低调大师

Android 优化个人封装仿网易新闻可滑动标题栏 TabLayout (文字或图标)

小菜在向朋友推荐了自己修改封装的仿网易顶部滑动标题栏 TabSlideLayout 滑动内容可以是文字也可以是网络图标,其原型为 FlycoTabLayout,但是因为年代很久远,小菜当时技术太渣,存在一些小问题,后期做过一些优化,今天趁机会整理一下。 优化内容: 网络状态不佳情况下,图片加载缓慢,有时加载不出来,如下图: 在部分三星手机上展示效果不佳,图片显示很小,如下图: 可以动态设置图片是否绘色,因有个别需求用户要展示的是彩色的漂亮图标,强制绘色便是画蛇添足。 问题查找: 问题一 的出现主要是因为图片加载方式不太合理,小菜以前用的是 Glide 中 BitmapImageViewTarget(iv) 方式,现在更换为 SimpleTarget<Bitmap>() 方式,两者的区别小菜还不能简洁明了的说清楚,有兴趣的朋友可以详细查看一下源码。 小菜的理解是,BitmapImageViewTarget() 方式优点:对于加载大图的整个过程处理比较好,可以设置加载过程中进度条等展示效果;而且该方式可以加载 Gif 图,也可以对 Gif 图的第一帧图进行绘色,但是没有 Gif 动画效果,就像一张普通的 png 图;缺点则是整体的处理时间较长,在网络状态不佳情况下有可能会加载失败。SimpleTarget() 方式直接优点是图片加载速度快,图片的大小根据 ImagView 来决定,不用重新计算;缺点是直接返回的 Bitmap() 不能加载 Gif 图。综合考虑,小菜觉得 SimpleTarget() 方式较合适。 问题二 的出现主要针对不同手机的适配,问题同样出在 Glide 图片加载部分,以前小菜用的 BitmapImageViewTarget() 并计算图片的宽高,现更改为 SimpleTarget() 方式解决。 问题三 的出现只是因为当时考虑不周全,可以在 attrs 中添加一个属性 is_change_color,并在图片绘色过程中处理一下即可,同时设置 set/get 方法,可以根据业务需求动态修改,详情请直接跳转 源码 Demo。 Tips:针对于问题二,图片布局中 ImageView 建议设置为 match_parent 方式,因为我们用户觉得 wrap_content 方式在部分三星手机上图不如华为手机大,小纠结。 解决方案: Glide 加载方式更换为 SimpleTarget(),如下: Glide.with(mContext).load(title).asBitmap() .placeholder(R.mipmap.top_default_bg).diskCacheStrategy(DiskCacheStrategy.SOURCE) .into(new SimpleTarget<Bitmap>() { @Override public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { if (mChangeColor) { resource = BitmapUtil.tintBitmap(resource, (position == 0) ? mTextSelectColor : mTextUnselectColor); } iv_tab_title.setImageBitmap(resource); } }); 在 attrs 中添加是否绘制图片颜色的属性,可以在 xml 或 Java 代码中进行设置: <!-- 设置是否绘制图片颜色 --> <attr name="tl_is_change_color" format="boolean" /> mChangeColor = ta.getBoolean(R.styleable.SlidingTabLayout_tl_is_change_color, true); public boolean isChangeColor() { return mChangeColor; } public void setChangeColor(boolean mChangeColor) { this.mChangeColor = mChangeColor; } 图标绘制统一颜色 图标不绘制颜色.jpg 小菜认为,优化是一个漫长的过程,是随着经验的积累与实际效果的反馈共同进行的,在使用过程中发现不合理的地方还请各位多多指教。 下面的是小菜的公众号,欢迎闲来吐槽哦~ 公众号.jpg

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册