我有自定义窗口小部件闪烁圆圈在自定义频率。在我的onDraw方法中,我画了一个圆。
@Override
protected void onDraw(Canvas c) {
super.onDraw(c);
if (data[mBitIndex] == '1'){
c.drawCircle(c.getWidth() / 2, c.getHeight() / 2, c.getWidth() / 2, mPaint);
}
}这在android 4.2.1上工作得很好,但是如果我在android 2.3上试一下,没有圆圈显示。我做了一些实验来确定这个问题
@Override
protected void onDraw(Canvas c) {
super.onDraw(c);
if (data[mBitIndex] == '1'){
c.drawColor(mPaint.getColor());
}
}这和我预期的在两个版本的android上都能工作。但是,这是一个正方形,而不是我想要的圆形。
怎么可能画正方形而不画圆呢?我已经在互联网上搜索过了,但是以前没有人有这个问题,或者这只是我的问题。我不明白,谁能给我解释一下哪里错了?
发布于 2014-10-08 20:43:15
在Honeycomb (API 13)或更早的版本中,硬件加速有buggy,无法绘制圆。禁用视图的硬件加速:
setLayerType(View.LAYER_TYPE_SOFTWARE,null);这对我很有效。
或者将targetSDKVersion设置为14或更高(这可能会导致其他问题)。
https://stackoverflow.com/questions/22532278
复制相似问题