gpt4 book ai didi

android - setShadowLayer Android API 差异

转载 作者:IT老高 更新时间:2023-10-28 21:48:02 26 4
gpt4 key购买 nike

我为我的应用程序开发了一个自定义 View 组件,但我正在努力为圆圈添加阴影。

这是我的类扩展 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"/>

enter image description here

这是输出

<uses-sdk android:targetSdkVersion="14"/> //Higher target API yields the same output.

enter image description here

知道如何克服这种不受欢迎的行为吗?

最佳答案

setShadowLayer() 仅在硬件加速开启时支持文本。 targetSdk=14 或更高版本时,硬件加速默认开启。一个简单的解决方法是将您的 View 放在软件层中:myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

关于android - setShadowLayer Android API 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17410195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com