2012-01-26 12 views
1

私は新しい画面を開きますクリックしたときに、ビットマップのアイコンを持つことに興味を持っています。今、これまでのところ、私は、ビットマップを描画達成するために、このリンクを使用している:Javaのブラックベリーのビットマップは

Blackberry Clickable BitmapField

このコードは、画面上のビットマップを描画し、時にクリックされたときにアクションを喚起するためのものです。それは2つの写真があります。私が変更されている

CustomMenuButtonField buttonInstance = new CustomMenuButtonField("img1.png", "img2.png"); 
add(buttonInstance); 

::私が午前

protected boolean navigationClick(int status, int time) 
    { 
     Alert.startVibrate(50); 
     //fieldChangeNotify(0); 
     return true; 
    } 

1つの問題は、私は、フィールドマネージャに画像の外側をクリックしたときに、画像がまだ変更されていることで、アクション私はそれを呼び出しています誘発される(振動する)。ここからは、ウィンドウ上の別のテキストフィールドをクリックするまで「フォーカス」にとどまりますが、空白をクリックしてもそれは変わりません。私の質問はこれが起こっをあるべきである、とあなたはビットマップではなく、その周りをクリックしたとき、それはそうアクションがJUST誘発される制限する方法はありますか?また、アイコンのような小さなサイズのものにビットマップをスケールする簡単な方法はありますか?私は4つのアイコンをクリックしようとしていますが、クリックすると4つの異なる画面が開きます。誰かがこれについて何かを知っていれば、どんな援助も感謝するでしょう。私はちょうどJavaを始めたので、私は非常に初心者です。

+0

私の記事を読んで...私の最善のアドバイスはRIMツールキットから離れていると思います。 Eclipseが私のお気に入りでした。現在、他のツールも利用可能です。 –

答えて

1

注:私はブラックベリーのAPIに対して極めて偏ったです。

ブラックベリー(バージョン5)ソフトウェアで作業して以来、長い時間が経ちましたので、私のアドバイスが完全に古くなっている可能性があります。 (私はバージョン5を使っていたと思います)。提供

コンポーネントは、我々は独自の外観を持っていたので、私たちは、カスタムコンポーネントを作成するために、マネージャークラスをオーバーライドするアプローチをとったと感じている行うために必要なものには全く不十分でした。あなたは無限除き、ないスイングでの作業とは異なり、(動作し、paintメソッドを置き換えるボタンを拡張する場合、私はそれだけ

アイデアを掲示していますので、

//Garbage code from a dead project 
     /* (non-Javadoc) 
     * @see net.rim.device.api.ui.Manager#paint(net.rim.device.api.ui.Graphics) 
     */ 
     protected void paint(Graphics graphics) { 
     if(style == Spinner.DRAW_ROUNDED_RECTANGLE) 
      drawRoundedRectangluar(graphics); 
     else 
      drawRectangular(graphics); 
     } 

これの残りはゴミですもっと痛い)あなたは基本的にあなたが望むものを何でもすることができます。これにより、画像の拡大縮小や必要な処理を行うことができます。

はしかし、私はブラックベリーは、ここ数年で彼らのAPIを更新しました願っています。このプロジェクトは苦痛で、あなたが考えるべきことを達成するために必要な作業量の約10倍を要しました。

また、イベントがそうでなければ、彼らは自動的に伝搬するデバイス上で消費される(編?)必要があります(イベントが消費されたことを示すために、リスナーにtrueを返します。)

バージョンと正確なAPIを知らなくてもI 「私は、私は非常にすべてのデバイスへのポート、それはので、絶対最小要件にこだわっORモバイルWebインターフェイス(常にではないオプション)を介してアプリケーションを実行しようとする推薦すると言っ以外の多くの助けになることができない恐れメートル。私は開発時にBlackberryが泥沼になっているのを発見し、私はそれを断念しました。

私は絵を最初から書くことは、コンポーネントが一貫して動作するようにしようとするよりも速く、その実行可能であり、スイングチュートリアルの95%はほとんど追加作業なしで翻訳することがわかった。

(SWTはAPIに少し良くフィットしていますので、Eclipseでそれをチェックしてください。また、Eclipseを使用していない場合は、Blackberry開発用にRIMツールは恐ろしいものでした)

+0

ダニエルにお礼をありがとうございます。私はRIMサイト自体からダウンロードされたブラックベリープラグインで新しいEclipse環境を使用しています。 eclipseプラグインのバージョンはhttp://us.blackberry.com/developers/javaappdev/javaplugin.jspから1.5です。イベントを消費する必要があると言うと、コード内のfieldChangeNotify(0)をコメントなしのままにする必要がありますか?私は現在あなたが投稿した提案をチェックアウトしています、もう一度ありがとう! – user1152440

+0

私が消費を参照していたとき:イベントにtrueを返さないと、それは(他のコンポーネントに)伝播します。あなたのスクリーンは、フォーカスが失われるまで残っていると言いましたので、あなたがリスナーから「消費」していない(真実に戻っていない)事実かもしれないと思いました。私は消費されていない出来事について同様の行動を覚えています。 –

関連する問題