0%

Android 日期选择器 滚轮样式的选择器

github: DatePickerView

在这里插入图片描述

PickerView inside。

在这里插入图片描述

Usage

Gradle

Project level build.gradle

1
2
3
4
5
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}

App level build.gradle

1
2
3
dependencies {
implementation 'com.github.limxing:DatePickerView:1.0.1'
}

阅读全文 »

一般配置

Android应用间跳转需配置Scheme,一般我们在启动Activity处增加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<activity
android:name=".singleactivity.WelcomeActivity"
android:configChanges="screenSize|orientation"
android:launchMode="singleTop"
android:screenOrientation="behind"
android:theme="@style/WelcomeTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--增加的配置-->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="putaoabc" />
</intent-filter>

</activity>

网页或其他应用跳转配置Uri:

1
pudaoabc://?xx=xx&xxx=xxx
阅读全文 »

9patch图片本就是用来防止拉伸防止局部位置也被拉伸的功能。
但在铺满全屏的9patch图片有个坑,尽管设置为了9patch图片点和线都已经画了,但图片还是被拉伸了一点。
原因:图片的宽度是比照IOS尺寸切的图,是375的倍数,而Android手机一般情况下宽度是360的倍数,如此在纵向适配的时候,高度也会按照屏幕的宽高比进行拉伸,这时的高度达不到手机屏幕的实际高度,因此再平铺的时候纵向又被一次拉伸。导致我们看到尽管使用了9patch图片仍被拉伸的效果。
结论:在使用9patch图片的地方让设计师出以1080为宽切图。

Hello ,好久不见。
疯狂的TextView前缀。不知道是否遇到过这种设计图:


这也有:

新设计图又有:

看到没,金额那都有¥的符号。
不知道你在叠TextView的时候会不会疯,我反正不爽,直接自定义。
自定义的方案有两种:
1、继承ViewGroup,创建两个TextView,然后在各种onMeasure,onLayout。
嗯。可以实现,但是呢ViewGroup的存在嵌套了一层,性能肯定不是最好的啊(当然这点小性能微乎其微,CPU都不会颤抖一下)。所以使用第二种吧。

阅读全文 »

设计一个关系型数据库很重要的一部分是将数据拆分成具有相关关系的数据表,然后将数据以符合这种关系的逻辑方式整合到一起。从 Room 2.2 的稳定版开始,我们可利用一个 @Relation 注解来支持表之间所有可能出现的关系: 一对一、一对多和多对多。

1
2
3
4
5
6
7
Room 2.2

https://developer.android.google.cn/jetpack/androidx/releases/room#version_220_3

@Relation

https://developer.android.google.cn/reference/android/arch/persistence/room/Relation

一对一关系

Markdown

阅读全文 »

该文档由作者自己的理解翻译,若有出入,敬请谅解。

Kotlin协程的基本用法

这一篇我们学习协同程序的基本概念。查看原文

你的第一个协同程序

复制下面的代码到你的程序中并运行:

1
2
3
4
5
6
7
8
9
10
import kotlinx.coroutines.*

fun main() {
GlobalScope.launch { // 启动一个新的后台协同程序,并继续
delay(1000L) // 非阻塞的延时1秒(默认时间单位是毫秒)
println("World!") // 延时结束打印
}
println("Hello,") // 协同程序结束延时后,主线程继续执行
Thread.sleep(2000L) // 阻塞主线程2秒用来保持虚拟机运行中
}

查看全部代码

你将看到如下结果:

阅读全文 »

该文档由作者自己的理解翻译,若有出入,敬请谅解。

Kotlin协程简介

Kotlin作为一种语言,仅仅需要提供最小等级API的标准库用于其他不同库去使用的协同程序。类似的功能(协程)不同于其他的一些语言,async 和 await不是Kotlin的关键字,也不是标准库的一部分。而且,Kotlin的挂起方法的概念是一种对于异步的操作比期望的更加安全和发生更少的错误。

Kotlin的协同程序是由JetBrains为协同程序而开发的功能丰富的库。它包括一些高水平可协同的操作符,例如,launch,async 等等。

本文档主要包含核心工功能的一系列kotlin协程的举例,被分成若干个部分进行阐述。

为了更好的使用本文档中协程的举例,你需要先添加kotlin协程核心库依赖,可参考项目中的README。

阅读全文 »

Android 屏幕适配是Android工程师最最头疼的一件事情了。最近公司的项目中就需要引入屏幕适配的工作,但是,UI及尺寸是基于iPhone6的,那么如何做到显示效果上能够更加的接近设计图呢?

下面我将在最小限度的不更改源代码的情况下,使用屏幕分辨率限定符的形式进行Android屏幕的适配方式的介绍

一、 将iPhone6的尺寸与Android sw360dp 进行换算

通常我们需要UI设计基于1920*1080的设计稿,宽度为360dp,将切图的三倍图放置xxhdpi,如果标注是px,那么我们自动除以3作为dp,如果直接是dp那我们直接拿来使用。

手机 屏幕分辨率 宽度DP(heightPixels/density)
iPhone6 1334*750 375pt
小米6 1920*1080 360dp
华为荣耀8X 2045*1080 360dp
锤子坚果Pro2 2070*1080 432dp
阅读全文 »

今天是2019年1月9号,新的一年已经到来,今天才腾出时间来总结已经过去的2018。

2018.2.23 结婚啦。
2018.9.17 换了新工作啦。
2018.10.28 期待的猪宝宝。

回望:2018
实践了IOS开发,对移动端的开发认知进一步提升。接触了其他开发语言Python,Kotlin。
新公司新项目,火热开发中。

展望:2019
我将持续在Android领域接触更多的知识,把新技术运用到公司的项目中来。
迎接小baby。
完成北大的答辩和课程。

在安装界面点击打开,讲app切到后台再切回前台后,重新进入欢迎页。

在欢迎页或启动页onCreate后添加判断

1
2
3
4
5

if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) {
finish()
return
}

李利锋@limxing
2018-11-27