我有自定义小部件 - 自定义频率闪烁的圆圈。在我的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上所期望的那样。但是,这是一个正方形,而不是圆形,我想要它。
如何画出方形,但不是圆形?我在互联网上搜索,但之前没有人遇到过这个问题,或者只是我的问题。我不明白,有谁能解释我哪里可能是错误的?
答案 0 :(得分:0)
在Honeycomb(API 13)或更早版本中,硬件加速是错误的,无法绘制您的圆圈。 禁用视图的硬件加速:
setLayerType(View.LAYER_TYPE_SOFTWARE,null);
这对我有用。
或者将targetSDKVersion设置为14或更高(这可能会导致其他问题)。