私が焦点にbuttonfieldカスタムのビットマップを変更しようとしています。私は2つの画像を持っています.1つは灰色で、もう1つは赤で、ボタンに焦点が当てられたら交換したいと思います。フォーカスのカスタムボタンフィールドのビットマップを変更するには? (ブラックベリー)
このコードはボタンがグレーから赤に向かう、第二の画分について正しい値にけいれん作っています。焦点を合わせると、それが選択され、不要なイベントが生成されます。変更後、元の色に戻り、シミュレータがフリーズします。
は、誰もが私たちは、このコードでいただきました!間違って見つけることができますか?
マイカスタムbuttonFieldクラス:
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Characters;
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.component.BitmapField;
public class ImageNavbarButtonField extends BitmapField{
private Bitmap image;
private boolean isFocused;
public ImageNavbarButtonField(Bitmap image) {
super(image);
this.image = image;
}
public boolean isFocusable() {
return true;
}
protected boolean navigationClick(int status, int time) {
fieldChangeNotify(0);
return true;
}
protected boolean trackwheelClick(int status, int time) {
fieldChangeNotify(0);
return true;
}
protected void drawFocus(Graphics graphics, boolean on){}
public void onFocus(){
setBitmap(ImageResizer.generateHitBitmap(image));
invalidate();
}
public void onUnfocus(){
//super.onUnfocus();
setBitmap(image);
invalidate();
}
protected void paint(Graphics graphics) {
super.paint(graphics);
}
protected boolean keyChar(char character, int status, int time) {
if(Characters.ENTER == character || Characters.SPACE == character) {
fieldChangeNotify(0);
return true;
}
return super.keyChar(character, status, time);
}
}あなたはこのようなあなたのcustomButtonを作成することができ