我想创建一个从戒指的内边缘开始渐变的戒指。我尝试以此方式进行操作,但随后得到一个从圆环中心开始的渐变。
图片: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)
提前致谢。
假设我有以下代码:
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 …