小编Min*_*lys的帖子

在Android中渐变渐变

我想创建一个从戒指的内边缘开始渐变的戒指。我尝试以此方式进行操作,但随后得到一个从圆环中心开始的渐变。

图片:http : //s1.postimg.org/tw5htbxxb/Untitled_1.jpg 左图显示了我想做的事情,右图显示了从以下代码中得到的结果。

<shape 
    android:shape="ring"
    android:innerRadius="20dp" 
    android:thickness="30dp" >

    <gradient 
        android:type="radial"
        android:gradientRadius="100%p"
        android:startColor="#000000"
        android:endColor="#FFFFFF" />

</shape>
Run Code Online (Sandbox Code Playgroud)

提前致谢。

xml android radial-gradients

3
推荐指数
1
解决办法
3200
查看次数

仅将标记为已归类的类型传递给Kotlin泛型函数

假设我有以下代码:

open class Fruit
class Apple : Fruit()
open class Juice<T : Fruit>
class AppleJuice : Juice<Apple>()

fun <F : Fruit, J : Juice<F>> makeJuice(juiceClass : Class<J>, fruit : F) : J {}
Run Code Online (Sandbox Code Playgroud)

我这样调用该函数:

val appleJuice : AppleJuice = makeJuice(AppleJuice::class.java, Apple())
Run Code Online (Sandbox Code Playgroud)

但是,我不想传递类对象,而是希望将其AppleJuice作为类型传递:

val appleJuice : AppleJuice = makeJuice<AppleJuice>(Apple())
Run Code Online (Sandbox Code Playgroud)

我重构了我的功能以内联reified

inline fun <F : Fruit, reified J : Juice<F>> makeJuice(fruit : F) : J {}
Run Code Online (Sandbox Code Playgroud)

但是现在我必须指定两种类型:

val appleJuice : AppleJuice = makeJuice<Apple, AppleJuice>(Apple())
Run Code Online (Sandbox Code Playgroud)

从理论上讲,Apple不需要类型,因为它已经从AppleJuice …

kotlin kotlin-generics kotlin-reified-type-parameters

3
推荐指数
1
解决办法
319
查看次数