残念ながら、あなたは不器用なAPIにうんざりしていて、私の意見では、Java(およびすべてのC言語)の弱点です。
あなたはそれがあなたのイメージscaleImage32()
を拡大縮小していると思いました。logo
そうではありませんでした。logo
スケーリングされたもののコピーを返していました。ただし、この値では何もしませんでした。次を返すlogo
スケーリングされたコピーが本当に必要なときに、ビットマップフィールドに表示するために使用しました。scaleImage32()
EncodedImage logo = EncodedImage.getEncodedImageResource("image.png");
EncodedImage scaledLogo = logo.scaleImage32(Fixed32.toFP(2), Fixed32.toFP(2));
BitmapField image = new BitmapField(scaledLogo.getBitmap());
いくつか追加します。
1)アプリをOS 5.0以降に制限できれば、scaleInto()APIの方が使いやすいと思います
2)この種のシナリオは、人々がメソッド名に大騒ぎする理由です。RIMはscaleImage32()
、メソッドを呼び出すインスタンスがスケーリングされると思われるため、に不適切な名前を選択しました。getScaledImage32()
、またはそのような名前が付けられている必要があります。
3)私が認めるのが恥ずかしい、あいまいなプログラミングの見出しの下で、私はAdaでコーディングしていました。Adaは、プログラミングエラーを防ぐために可能な限りのことを行うことを目的としていました。Adaの特徴の1つは、コンパイラが未使用の戻り値をエラーとして扱うことでした。このシナリオがまさにその理由です。
だから、これについてあまり悪く感じないでください:)