Android中的椭圆渐变

con*_*are 13 graphics android gradient shape

我知道如何设置和显示椭圆形状.我知道如何将渐变应用于此形状.我无法弄清楚我是如何得到一个椭圆形渐变来匹配形状.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval" >
    <gradient
        android:startColor="#66FFFFFF"
        android:endColor="#00FFFFFF"
        android:gradientRadius="100"
        android:type="radial" />
</shape>
Run Code Online (Sandbox Code Playgroud)

如果你可以想象,这个渐变在中间有一个半透明的白色发光,然后在边缘渐渐变为alpha零.我需要让它以椭圆形状出现,而不仅仅是圆形渐变.我怎样才能做到这一点?

Dev*_*red 2

这很困难,因为以这种方式定义的可绘制对象在运行时自行绘制,适应您放置它们的空间。如果您必须在代码中执行此操作,最好的解决方案是采用您在 XML 中定义的可绘制形状并绘制它作为一个完美的圆放在画布上或位图中。此时,渐变图案将遵循形状轮廓。将形状绘制到静态上下文中后,您可以将形状添加到视图中(例如,作为背景),当它尝试适应视图边界时,这会将其扭曲为椭圆形。既然你有一个图像,整个事物就会按比例扭曲。

希望这种方法的像素不会太差。