我正在使用包含小图片的位图字段。
当焦点出现在该图像上时,焦点的蓝色不会出现,如何设置焦点宽度和高度
我的代码::
contract_image_field = new BitmapField(contract_image,Field.FOCUSABLE)
{
public void getFocusRect(XYRect rect)
{
rect.width=0;
rect.height=0;
//super.getFocusRect(rect);
}
protected void onFocus(int direction)
{
myScreen.this.invalidate();
super.onFocus(direction);
}
protected void onUnfocus()
{
myScreen.this.invalidate();
super.onUnfocus();
}
};
contract_image_field.setBitmap(contract_image);
这就是我使用图像字段的方式,
虽然我的图片是可点击的,但我看不到蓝色(我想要那个请帮忙!!!)
在getFocusRect中更改宽度和高度值甚至不能解决问题
答案 0 :(得分:4)
您还可以避免增加字段范围; 使用以下代码:
BitmapField bitmapField = new BitmapField(bitmap, BitmapField.FOCUSABLE)
{
protected void drawFocus(Graphics graphics, boolean on)
{
setSpace(5, 5);
super.drawFocus(graphics, on);
}
};
答案 1 :(得分:3)
实际上焦点在那里,但你看不到,因为焦点区域与场的整个范围相同。如果你想看焦点矩形增加字段范围。
BitmapField bitmapField = new BitmapField(bitmap,Field.FOCUSABLE){
protected void layout(int width, int height) {
setExtent(bitmap.getWidth()+10, bitmap.getHeight()+10);
}
};
答案 2 :(得分:0)
Ashraf的建议是正确的,只是我会尽量避免在每个drawFocus调用中设置'space'。
只需在有问题的bitmapField上调用setSpace(int, int)成员一次。