我为我的应用程序开发了一个自定义视图组件,并且正在努力向圆圈添加阴影。
这是我的类扩展 View 的代码
public class ChartView extends View {
public ChartView(Context context, AttributeSet attributeSet){
super(context, attributeSet);
init();
}
Paint paint;
public void init(){
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.FILL);
paint.setShadowLayer(30, 0, 0, Color.RED);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawCircle(getWidth()/2, getHeight()/2,50, paint);
}
}
但是,我注意到根据 API,对 ShadowLayer 有很大的影响。
这是输出
<uses-sdk android:targetSdkVersion="13"/>
这是输出
<uses-sdk android:targetSdkVersion="14"/> //Higher target API yields the same output.
知道如何克服这种不良行为吗?
setShadowLayer()
仅当硬件加速打开时才支持文本。硬件加速默认开启targetSdk=14
或更高。一个简单的解决方法是将视图放在软件层中:myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)