2015-08-28 193 views
2

可以生成与下面的代码圆形梯度:椭圆渐变的Android

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<gradient 
    android:centerColor="#c1c1c1" 
    android:endColor="#4f4f4f" 
    android:gradientRadius="400" 
    android:startColor="#c1c1c1" 
    android:type="radial" > 
</gradient> 

</shape> 

但一会怎么画椭圆渐变在android系统?即X和Y的不同半径?

回答

0

你应该能够与不平等的宽度和高度的比例来获得不同的X和Y半径的效果来包装一个scale drawable内的梯度绘制:

<?xml version="1.0" encoding="utf-8"?> 
<scale xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/gradientShape" 
    android:scaleGravity="center_vertical|center_horizontal" 
    android:scaleHeight="80%" 
    android:scaleWidth="100%" /> 
+0

谢谢你的答案,但正如你可能知道,由于级别问题,可绘制比例不可见。出于某种原因,将其可绘制级别设置为1以使其可见并不适用于Android ICS。你有任何解决方法吗? –

+0

@EnesBattal - 我不明白你的意见。绘图级别必须与['LevelListDrawable'](http://developer.android.com/guide/topics/resources/drawable-resource.html#LevelList),而不是'ScaleDrawable'。如果您指的是API级别,自API级别1以来已经支持'ScaleDrawable'。 –

+0

但是,ScaleDrawable afaik存在一个问题,如果它没有未显示的级别,请参阅http:// stackoverflow。 com/questions/5507539/android-scaledrawable-doesnt-seems-to-work –