Проблема с фокусировкой ежевики - PullRequest
0 голосов
/ 01 августа 2011

Я добавляю три растровых изображения на моем экране. Изображение должно меняться с фокусом и расфокусировкой. Теперь, если я объявляю растровые изображения в моем настроенном методе, чем при прокрутке от одного изображения к другому, это дает исключение нулевого указателя. Но когда я объявляю растровые изображения вне метода, я не получаю никаких исключений, но везде фокусируется только последнее сфокусированное изображение, но должно быть так, что для трех изображений есть три отдельных сфокусированных изображения. Ниже приведен мой код. Пожалуйста, помогите.

private BitmapField getBitmapField(final Item item, final int cellWid,  final int cellHgt, final long style) {
        final Bitmap bitmap = Bitmap.getBitmapResource(item.imgUrl);
        final Bitmap bitmapfoc = Bitmap.getBitmapResource(item.imgUrlimp);
        BitmapField bitmapField = new BitmapField(bitmap, style) {
            boolean _inFocus = false;

            protected void onFocus(int direction) {
                _inFocus = true;

                selectedIndex = flowFieldManager.getFieldWithFocusIndex();
                System.out.println("Selected Index :"+selectedIndex);
                if(TextControl.labelField != null)
                TextControl.labelField.setText(item.title);

                super.onFocus(direction);
                //this.invalidate();
            }
            protected void onUnfocus() {
                _inFocus = false;
                super.onUnfocus();
                //this.invalidate();
            }
            public void paint(Graphics graphics) {
                System.out.println("====barView=== :"+barview);

             graphics.drawBitmap(0, 0, bitmap.getWidth(),bitmap.getHeight(), bitmap, 0, 0); //draw bachground image bitmap
             invalidate();
                //super.paint(graphics);
              }
            protected void drawFocus(Graphics g, boolean arg1) {

        g.drawBitmap(0,0, bitmapfoc.getWidth(), bitmapfoc.getHeight(), bitmapfoc, 0, 0); //draw bachground image bitmap
            invalidate();
            }

1 Ответ

1 голос
/ 02 декабря 2011
BitmapField chaneBitmap(String image1,String image2){
    final Bitmap  original= Bitmap.getBitmapResource(image1);
    final Bitmap change = Bitmap.getBitmapResource(image2);
    BitmapField _hold_bitmap=new BitmapField(original,BitmapField.FOCUSABLE){    
        protected void drawFocus(Graphics graphics, boolean on){} 
            public void onFocus(int direction){
                    invalidate();
                    setBitmap(change);
             }

             public void onUnfocus(){
                     super.onUnfocus();
                     setBitmap(original);
             }
        }
}
...