Skip to content

Commit 3f531eb

Browse files
committed
修改阴影的实现方式
新增支持 Shape 线条的方向 新增适配 LayoutDirection 特性
1 parent 784e712 commit 3f531eb

32 files changed

Lines changed: 770 additions & 551 deletions

.github/ISSUE_TEMPLATE/issue_template_bug.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,31 @@ assignees: getActivity
88

99
## 问题描述
1010

11-
* 框架版本:XXX
11+
* 框架版本【必填】:XXX
1212

13-
* 问题描述:XXX
13+
* 问题描述【必填】:XXX
1414

15-
* 复现步骤:XXX
15+
* 复现步骤【必填】:XXX
1616

17-
* 是否必现:填是/否
17+
* 是否必现【必填】:填是/否
1818

19-
* 出现问题的手机信息:请填写出现问题的品牌和机型
19+
* 出现问题的手机信息【必填】:请填写出现问题的品牌和机型
2020

21-
* 出现问题的安卓版本:请填写出现问题的 Android 版本
21+
* 出现问题的安卓版本【必填】:请填写出现问题的 Android 版本
2222

2323
## 请回答
2424

25-
* 是部分机型还是所有机型都会出现:部分/全部(例如:某为,某 Android 版本会出现)
25+
* 是部分机型还是所有机型都会出现【必答】:部分/全部(例如:某为,某 Android 版本会出现)
2626

27-
* 框架最新的版本是否存在这个问题:是/否(如果用的是旧版本的话,建议升级看问题是否还存在)
27+
* 框架最新的版本是否存在这个问题【必答】:是/否(如果用的是旧版本的话,建议升级看问题是否还存在)
2828

29-
* 是否已经查阅框架文档还未能解决的:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的)
29+
* 是否已经查阅框架文档还未能解决的【必答】:是/否(文档会提供最常见的问题解答,可以看看是否有自己想要的)
3030

31-
* issue 是否有人曾提过类似的问题:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)
31+
* issue 是否有人曾提过类似的问题【必答】:是/否(看看曾经有人提过类似的问题,先参考一下别人是怎么解决的)
3232

33-
* 是否可以通过 Demo 来复现该问题:是/否(排查一下是不是自己的项目代码写得有问题导致的)
33+
* 是否可以通过 Demo 来复现该问题【必答】:是/否(排查一下是不是自己的项目代码写得有问题导致的)
3434

35-
* 使用原生的 shape.xml 来实现是否也会出现该问题:是/否(排查一下是不是框架的代码存在问题导致的)
35+
* 使用原生的 shape.xml 来实现是否也会出现该问题【必答】:是/否(排查一下是不是框架的代码存在问题导致的)
3636

3737
## 其他
3838

.github/ISSUE_TEMPLATE/issue_template_suggest.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ assignees: getActivity
88

99
## 建议收集
1010

11-
* issue 是否有人曾提过类似的问题?(必答项,一旦出现重复提问我将不会再次解答)
11+
* issue 是否有人曾提过类似的问题?【必答】(一旦出现重复提问我将不会再次解答)
1212

13-
* 你觉得框架有什么不足之处?(必答项,你可以描述框架有什么令你不满意的地方)
13+
* 你觉得框架有什么不足之处?【必答】(你可以描述框架有什么令你不满意的地方)
1414

15-
* 你觉得该怎么去完善会比较好?(非必答项,你可以提供一下自己的想法或者做法供作者参考)
15+
* 你觉得该怎么去完善会比较好?【非必答】(你可以提供一下自己的想法或者做法供作者参考)

HelpDoc.md

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
## 常见疑问解答
22

3+
#### 为什么我调用 setXxx 没有生效?
4+
5+
* 如果设置的是 Shape、阴影、背景状态选择器的属性,需要调用 `intoBackground` 方法才能生效
6+
7+
* 如果设置的是文字颜色及状态选择器的属性,需要调用 `intoTextColor` 方法才能生效
8+
9+
* 如果设置的是 **CheckBox****RadioButton** 选中框的图标及状态选择器的属性,需要调用 `intoButtonDrawable` 方法才能生效
10+
311
#### 框架入侵性太大怎么办?
412

5-
* 框架上线有很多人说框架的侵入性很强?这点我必须承认,我也有看到网上也有用 `LayoutInflater.Factory` 来实现,这样入侵性很低,但是有一个致命的缺点,无法在布局中预览,这样你是不是突然就感觉不香了?入侵强当然有缺点也有优点,我不能光看它坏的一面,那样看待问题就太片面了,不过它的缺点并不是致命的,就好比你使用了一个自定义 View 叫 `XxxTextView`,这种情况下你肯定就没办法再使用 **ShapeTextView** 了,那么这种情况我们该这么办?解决方式大致分为两种:
13+
* 框架上线有很多人说框架的侵入性很强?这点我必须承认,我也有看到网上也有用 `LayoutInflater.Factory` 或者 DataBinding 来实现,这样的入侵性低,但是有一个致命的缺点,无法在布局中预览,这样你是不是突然就感觉不香了?入侵强当然有缺点也有优点,我不能光看它坏的一面,那样看待问题就太片面了,不过它的缺点并不是致命的,就好比你使用了一个自定义 View 叫 `XxxTextView`,这种情况下你肯定就没办法再使用 **ShapeTextView** 了,那么这种情况我们该这么办?解决方式大致分为两种:
614

7-
* 第一种可以用原生的 Shape 来实现,可以选择在 xml 定义或者代码动态设置的方式,这种方式大家应该都懂,这里不再多说,不过有一个问题,就是原生的 Shape 是不支持设置阴影的,如果你想要用阴影的话,就得用第二种方式。
15+
* 第一种可以用原生的 Shape 来实现,可以选择在 xml 定义或者代码动态设置的方式,这种方式大家应该都懂,这里不再多说,不过有一个问题,就是原生的 Shape 是不支持设置阴影的,如果你想要用阴影的话,就得用第二种方式。
816

9-
* 第二种就是用框架提供的 **ShapeDrawable** 类了,在 Java 代码中进行动态设置,这个类的用法其实很简单,在布局用哪个属性,在代码中就用哪个方法。
17+
* 第二种就是用框架提供的 **ShapeDrawable** 类了,在 Java 代码中进行动态设置,这个类的用法其实很简单,在布局用哪个属性,在代码中就用哪个方法。
1018

11-
* 另外有一个需要注意的点,如果你自己单独使用 **GradientDrawable** 还是 **ShapeDrawable** 在 Java 代码动态设置的话,如果涉及到虚线或者阴影的话,经过验证在有些手机上面是无法生效的,必须要先关闭硬件加速才能生效,当然 **ShapeDrawable** 有对外开放 **intoBackground** 方法,这个方法会帮你判断是否需要关闭硬件加速。
19+
* 另外有一个需要注意的点,如果你自己单独使用 **GradientDrawable** 还是 **ShapeDrawable** 在 Java 代码动态设置的话,如果涉及到虚线或者阴影的话,经过验证在有些手机上面是无法生效的,必须要先关闭硬件加速才能生效,当然 **ShapeDrawable** 有对外开放 **intoBackground** 方法,这个方法会帮你判断是否需要关闭硬件加速。
1220

1321
* 现在目前关于 Shape 的框架都无法十全十美,看个人怎么抉择了,无关好与坏,在享受框架优点的同时,也要学会忍受框架的缺点。
1422

0 commit comments

Comments
 (0)