分类:android
Android使用ItemTouchHelper实现RecyclerView的拖拽排序
Android使用POI读取Excel(XLS和XLSX)
1.添加依赖
// Excel implementation 'org.apache.poi:poi:3.17' implementation 'org.apache.poi:poi-ooxml:3.17' implementation 'org.apache.xmlbeans:xmlbeans:3.1.0' implementation 'stax:stax:1.2.0'
2.在程序中使用
private void readExcel(String fileName) { try { InputStream inputStream = new FileInputStream(fileName); Workbook workbook; if (fileName.endsWith(".xls")) { workbook = new HSSFWorkbook(inputStream); } else if (fileName.endsWith(".xlsx")) { workbook = new XSSFWorkbook(inputStream); } else { return; } Sheet sheet = workbook.getSheetAt(0); int rowsCount = sheet.getPhysicalNumberOfRows(); FormulaEvaluator formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator(); for (int r = 0; r < rowsCount; r++) { Row row = sheet.getRow(r); CellValue v0 = formulaEvaluator.evaluate(row.getCell(0)); CellValue v1 = formulaEvaluator.evaluate(row.getCell(1)); Log.i("Excel", "readExcel: " + v0.getStringValue() + "," + v1.getStringValue()); } workbook.close(); } catch (IOException e) { e.printStackTrace(); } }
Android 依赖冲突(Gradle查看依赖树)
节选自:Android依赖冲突解决方法
依赖分析
查看依赖关系需要用到的命令为:
gradlew :[module_name]:dependencies
如需分析工程中app这个module的依赖关系行命令则为:
gradlew :app:dependencies
如果你想把依赖关系输出到文件中,则可以使用以下命令:
gradlew :[module_name]:dependencies > [output_file]
例如将app module的依赖关系输出到dependence.txt文件中:
gradlew :app:dependencies > dependence.txt
简化版Gradle查看依赖树命令(Gradle查看依赖树解惑)
gradlew :app:dependencies --configuration releaseCompileClasspath > dependence.txt
Android: Camera相机开发详解
Java设计模式透析
Android图片加载框架最全解析
Glide使用总结
首先,添加依赖
implementation 'com.github.bumptech.glide:glide:4.11.0'
之后添加访问网络权限
<uses-permission android:name="android.permission.INTERNET" />
一、常用的方法
1、加载图片到imageView
Glide.with(this).load(url).into(imageView);
2、加载带有占位图
Glide.with(this).load(url).placeholder(R.drawable.loading).into(imageView);
3、加载指定大小的图片
Glide.with(this) .load(url) .placeholder(R.drawable.loading) .override(100, 100)//指定图片大小 .into(imageView);
OkSocket与Android的简单使用
OkSocket简介
- OkSocket是一款基于阻塞式传统Socket的一款Socket客户端整体解决方案.你可以使用它进行基于Tcp协议的Socket通讯.就是我们所说的长连接.
- 对通讯协议几乎无限制,可以使用PB,可以使用JSON,可以使用XML.只要可以序列化成Byte数组的对象都可以传输.
- 兼容所有语言写的Socket服务端,解决了Tcp通讯中头疼的粘包拆包问题,断线重连问题,心跳保持问题,分片发送,重定向连接等问题.
- 针对 手机 < – > 服务器 , 手机< – > 手机 间都可以进行tcp通讯,手机间通讯俗称点对点通讯,可以很好的支持.
- OkSocket还支持单工和全双工通讯.适配各种复杂业务场景.分为 客户端(OkSocketClient) 服务端(OkSocketServer)具体的继承和依赖方法在下面.
- 如果需要看demo程序,可以去https://github.com/xuuhaoo/OkSocket地址进行clone.之后直接run起来就可以了.Demo会自动和OkSocket编写的EchoServer进行连接通讯,让使用者更好地了解使用方法
- OkSocket旨在让更多不熟悉socket和tcp协议的朋友可以专注于业务开发而不是底层协议的开发和学习.
Android中分辨率,DPI,DP与PX对应关系
屏幕密度(DPI)
就是每英寸的像素点数,数值越高当然显示越清晰,通常 与“正常”或“高”密度屏幕相比,“低”密度屏幕在给定物理区域的像素较少。
密度无关像素 (dp)
在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度 或位置。
密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“中”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。
六种通用的密度: ldpi(低)~120dpi mdpi(中)~160dpi hdpi(高)~240dpi xhdpi(超高)~320dpi xxhdpi(超超高)~480dpi xxxhdpi(超超超高)~640dpi