Android
HouXinLin_CSDN
这个作者很懒,什么都没留下…
展开
-
开源一款个人博客,欢迎提意见
体验地址http://houxinlin.com:6060/效果Githubhttps://github.com/houxinlin/OneBlog原创 2021-10-29 15:05:47 · 165 阅读 · 0 评论 -
EventBus这么强大,那么来手写一个
EventBus今天突然想起了EventBus,做Android的肯定或多或少知道点这东西,EventBus是一个非常强大的事件发布/订阅轻量级框架,我们可以通过他在Activity、Fragment之间进行通信,或者其他组件中,他的API也及其简单,使用也方便,能使得代码更简洁,那么既然EventBus很强大,今天就来手写一个具有基本功能的“EventBus”。public class TestActivity extends AppCompatActivity { protected void o原创 2020-10-11 17:02:29 · 213 阅读 · 0 评论 -
无限轮播图使用Scroller就这么简单
前言这几天又拾起老本行,复习复习Android,才发现忘的差不多了,上午做了一个小Demo,配合Scroller做了一个轮播图,效果如下,但是不知为何,录制的GIF成这样,凑乎一下看看。原理是继承ViewGroup,然后自己摆放子View,也就是摆放在一条线上,开启一个定时器,每隔X秒通过Scroller进行滚动,当然还有处理Touch事件,在手指按下的时候定时器停止,抬起的时候定时器重新启动。Scroller我们知道View中提供了scrollTo()和scrollBy()两个方法用来滚动,也就原创 2020-10-06 13:37:51 · 453 阅读 · 0 评论 -
Android圆角布局,你有几种实现方式?
前言在Android中有时候需要用到圆角布局,或者圆角头像,实现办法有很多,但是各种办法有坑没坑那就是另一说了,今天就说三种办法,CardView、Shape、自定义View。CardView首先说第一种CardView,这是官方提供的一个控件,使用他需要引入,具体什么时候发布的就不知道了。使用CardView非常简单,只需要给他配置app:cardCornerRadius圆角大小就行。 implementation 'androidx.cardview:cardview:1.0.0'&l原创 2020-10-01 13:22:30 · 3123 阅读 · 0 评论 -
Win32汇编系列九,GDI画个寂寞
前言图片显示,说简单也简单,说难也难,在html中给img指定一个src、在Android中给ImageView指定一个src,还能各种圆角、缩放,但是,这一切在以前学Window的时候是真的困难,想显示一张图片怎么办?,找各种资料,最终只有一个答案,GDI+,GDI+不知道是啥玩意怎么办,在找资料学,最后会发现,显示一个PNG图片,需要十几行左右,还不包括有圆角等。(这里没说C#)。但今天说的是GDI,GDI+作为GDI的扩展,增强了很多,也复杂了很多,在后续会慢慢介绍,另外本文需要有Window消息原创 2020-09-25 21:42:27 · 1417 阅读 · 0 评论 -
int与byte那些事你确定知道?
前言最近在做一个远程屏幕共享软件,功能非常单一,只能通过Android端查看电脑的实时屏幕,一开始做法是电脑端不停捕获当前屏幕截图,压缩后上传到服务器,Android不停的刷新,但是结果有点不尽人意,效果太差了。其中并没有将捕获的屏幕保存成jpg,然后发送,而是直接将BufferedImage转换成 byte[]发送,当然服务器也没有存成文件,也是使用byte[]存最新的屏幕数据,Android通过给定接口将byte[]装换成图像。这里面有个将InputStream中的数据转换成BufferedImag原创 2020-06-21 12:48:37 · 1031 阅读 · 0 评论 -
自学Android半个月,做了一款课程表
效果图实现过程还是直接放源码吧,毕竟源码比较多。Github地址原创 2020-03-29 21:12:59 · 422 阅读 · 0 评论 -
Android自定义滑动进度条
一、效果图二、实现过程实现过程很简单,只要自定义一个TextView,在onTouchEvent中的移动事件中不断重新绘制即可。为了方便使用,首先自定义几个属性。<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="SlideView"> ...原创 2020-03-12 14:32:53 · 1225 阅读 · 1 评论 -
论恶搞带来的思考,android如何检测被分屏?
啊原创 2020-03-06 12:42:41 · 3607 阅读 · 0 评论 -
AndroidStudio 3.6都发布了,别用你那2.x了
AndroidStudio在2019年8月月发布,而近期又发布了3.6.1,赶紧下载来体验一下.地址:下载地址很多人都给出https://developer.android.com/studio和自己百度网盘的地址,大可不必,https://developer.android.google.cn/studio是不被墙的.下载速度还快一、安装安装就不必说了,这启动界面,显的又大气了不少...原创 2020-03-05 15:49:31 · 1391 阅读 · 0 评论 -
都在骂钉钉的同时,我却仿照他的群列表开始学习
(代码过长,可以到http://blog.houxinlin.com/project/android/dingding.tar.gz进行下载)一、效果图二、实现过程首先定义数据信息类,包括基本的姓名,头像,加入时间。家长和学生扩展自BaseInfo学生信息定义如下,并扩展了一个家长集合。家长信息定义如下,其中扩展了和学生的关系名称,并持有一份学生的信息。MainActivity...原创 2020-02-28 15:20:00 · 715 阅读 · 0 评论 -
来给布局添加LayoutTransition动画
无意间发现animateLayoutChanges这个属性,用来实现布局更新动画,也就是每次对布局做出更改后运行的预加载动画,通过给布局中增加animateLayoutChanges=“true”,就能轻易完成。一、实现<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://sche...原创 2020-02-25 14:25:16 · 427 阅读 · 0 评论 -
可垂直滑动的ViewPager2
ViewPager2可以用来代替ViewPager,是ViewPager的改进版本,提供并解决了ViewPager常见的问题。最显著的一个特点是支持垂直滑动,要想使用ViewPager2,先要将项目迁移到androidx,因为ViewPager2只有在androidx下才有。然后添加依赖。 implementation "androidx.viewpager2:viewpager2:1.0....原创 2020-02-22 12:07:40 · 3130 阅读 · 1 评论 -
动手写一个服务器性能实时监控Android程序
一、效果图左面是Deepin的系统监视器,右面是Android程序,当打开Eclipse时候,两个程序的CPU使用率和内存使用率都有明显的上升,关闭后也都有明显的下降。二、编写服务端提供性能数据。首先是Java检测性能,并提供http服务。这里用到个框架:oshi.hardware,可以获取到各种信息,在这里,只获取了CPU、内存使用率和内存大小,CPU核数。 private CpuI...原创 2020-02-19 12:46:26 · 703 阅读 · 0 评论 -
那些年我用过的Android网络请求库
下面是我使用过的网络框架,每种框架都有自己的优点缺点,要更具自身的应用场景选择。测试使用一个ip地址查询接口进行测试:http://ip.tianqiapi.com?ip=xxx.xxx.xxx.xxx。在Android中请求网络时要注意几点问题:1.权限 :<uses-permission android:name="android.permission.INTERNET"/>...原创 2020-02-17 14:28:28 · 589 阅读 · 0 评论 -
如果你这样学Java类加载器,100%会
类加载概述类加载从JDK1.0就有,听说最初是为满足Java Applet的需要开发出来的,因为Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。类加载器,顾名思义就是加载Java类到虚拟机中,负责读取Java字节码,并转换成java.lang.Class类的一个实例,通过newInstance()方法就可以创建出该类的一个对象,这里的读取可以从本地文件,或者从网络上读...原创 2020-02-14 19:03:53 · 173 阅读 · 0 评论 -
Android设计模式——MVP
一、什么是MVPMVP:全称 Model-View-Presenter。MVP框架由3部分组成:View层负责显示,Presenter层负责逻辑处理,Model层提供数据。View:负责绘制UI元素、与用户进行交互(在Android中体现为Activity,Fragment)Model:负责存储、检索、操纵数据Presenter:作为View与Model交互的中间纽带,处理与用户交互...原创 2019-05-07 18:04:59 · 179 阅读 · 0 评论