iモード携帯電話用Java(iアプリ) Part 3
932 :
デフォルトの名無しさん:03/10/21 23:43
Math.round() が使えないんだけど、
四捨五入ってどうやってるの?
>>932 それ以前に小数点が扱えないと思うけど。
934 :
デフォルトの名無しさん:03/10/22 01:51
それは10倍して扱ってるのでOKなんだ
10倍した数がintに入ってるということかい? なら、
n = (n + 5) / 10 * 10;
で四捨五入になると思う。
936 :
デフォルトの名無しさん:03/10/22 21:27
>>930 どうもありがとうございます。
試しに以下のようなコードを実装してみたのですが、
実用には少しばかり厳しいくらいに時間がかかります。
他に実行速度に優れた術をご存知ないでしょうか?
for(int i = 1; i < sw + 1; i++)
{
for(int j = 1; j < sh + 1; j++)
{
int rgb = g.getRGBPixel(i, j);
int r = ((rgb >> 16) & 0xff) + 20;
int g = ((rgb >> 8) & 0xff) + 20;
int b = ((rgb >> 0) & 0xff) + 20;
rgb = (0xff000000 | r << 16 | g << 8 | b);
g2.setRGBPixel(i, j, rgb);
}
}
>>936 20は定数?
定数なら
for (int i=1; i<=sw; i++) {
for (int j=1; j<=sh; j++) {
g2.setRGBPixel(i,j,g.getRGBPixel+0xFF141414);
}
}
変数なら
int add = 20;
for (int i=1; i<=sw; i++) {
for (int j=1; j<=sw; j++) {
g.setRGBPixel(i,j,g.getRGBPixel+0xFF000000+256*add,+16*add+add);
}
}
ループ内で変数を宣言すると遅くなるので
ループの前で宣言しよう
すまん、ちょいとミスった
こうしてメソッドにしておくといいかも
void changeBrightness(Graphics g1, Graphics g2, int r, int g, int b, int sw, int sh) {
int brightness = 0xFF000000 + 65536*r + 256*g + b;
for (int i=1; i<=sw; i++) {
for (int j=1; j<=sh; j++) {
g2.setRGBPixel(i,j,g1.getRGBPixel+brightness);
}
}
}
またもミス
×g2.setRGBPixel(i,j,g1.getRGBPixel+brightness);
○g2.setRGBPixel(i,j,g1.getRGBPixel(i,j)+brightness);
スレ汚してスマン
>>937 どうもありがとうございます。
私のコード的に一番実装しやすい
>>937の変数のほうのパターンを使用してみたのですが、
イメージが一気に、全体的に黒くなってしまいます。
とりあえずGraphics2使うのはやめようね
>>935 どうもです。 なるほど。
レスを参考に、桁数を変えられるようにしてみました。
良くできるところはありますか? 一応、動作してます。
class MyMath {
public static long roundOff(long stuff, int digit) {
if (digit < 1) {
return stuff;
} else if (digit > Long.toString(stuff).length()) {
return 0;
}
long exponent = 1;
for (int i = 1; i < digit; i++) {
exponent *= 10;
}
stuff += 5 * exponent;
stuff /= 10 * exponent;
stuff *= 10 * exponent;
return stuff;
}
}
943 :
デフォルトの名無しさん:03/10/23 00:19
マトリックスみたいに文字列を鏡文字にするには
どうしたらいいですか?
>>943 左右反転とかってことかな?
残念ながらそういうAPIはないね。
createImageで確保したところにdrawStringして、それを左右対称で実画面に送るしかないかな
945 :
デフォルトの名無しさん:03/10/23 00:23
>>940 多分0xFF000000は不要なので
g2.setRGBPixel(i, j, g.getRGBPixel(i, j, 65536*add + 256*add + add);
にしてくれ
というか
>>938のメソッドを使った方が間違えなくて済むしコードも短くなると思うよ
>>941 誰も使ってないと思うよ
>>943 >>944の方法しかないと思うし、それが一番簡単だと思う。
というかそんなどうでもいいAPIはリファレンスが読みづらくなるからいらないな
948 :
デフォルトの名無しさん:03/10/23 02:53
携帯用アプリなんて単純なんだからPerlで十分だよ。
949 :
デフォルトの名無しさん:03/10/23 10:06
変数名とかを短縮してくれる
いいソフトって何かないでしょうか?
できればフリーのやつで・・・・
951 :
デフォルトの名無しさん:03/10/23 16:02
手元にN504isしかないんですが
ネットから画像(jpeg)をダウンロードしてスクラッチに保存したいんですが
なぜか失敗してしまいます。↓がソースなんですが
何かマズイ点とか見としてる点などありますでしょうか?
OutputStream Out = Connector.openOutputStream("scratchpad:///0;pos=5120"); // 5KB
HttpConnection Http = (HttpConnection)Connector.open(ImageURL, Connector.READ);
Http.setRequestMethod(HttpConnection.GET);
Http.setRequestProperty("Content-type", "image/jpeg");
Http.connect();
InputStream In = Http.openInputStream();
byte Data[] = new byte[128];
int Length;
while((Length = In.read(Data)) != -1)
Out.write(Data, 0, Length);
In.close();
Out.close();
Http.close();
あの、ちょっとお尋ねしたいのですが
画面上に200字程度で構成される文字列を表示させたいのです。
リストボックスなども併用いたしますので高レベルUIを用いています。
一つのラベルを複数行に渡って表示させることは可能でしょうか?
実機は所持しておらず未確認なのですがドコモ公式のエミュでは改行されません。
どなたかお心当たりがありかつお時間が御座いましたらレスお願いします。
>>951 まずはエミュで試せ。
「その他」「ネットワーク設定」で鯖名いれて動かせばDLできる。
それで何のエラーか分かる。エラーが分かれば直すのはすぐできる。
1.鯖が違う(.jarを置いた鯖だよな?)
2.URLが違う(ちゃんと絵のあるURL指定してるか?)
String ImageUrl = IApplication.getSourceUrl() + "xxx.jpg";
みたいに鯖名も含まれているかチェックする事。
コードは問題なさそう。
1つ気になるのは
byte Data[]
という宣言だけど。(漏れはいつもbyte[] data)
>>952 無理。たとえできても機種依存。
HTMLコンテンツのような「説明文+入力エリア」的なものを
作りたいなら、素直にHTMLで作る事を勧める。
特に大量のラベルを配置するのは無謀。
例えばP503は、フォーカスの当たらないコンポーネントは
スクロールで飛ばす。Panelに
ボタン、ラベル×10個、ボタンの順で配置してみると分かる。
955 :
デフォルトの名無しさん:03/10/23 17:00
HTMLをiアプリ上でレンダリングして表示することって標準のAPIでできますか?
それとも自分でHTMLのパーサもレンダラーも作らなければできませんか?
ドキュメント嫁よ
>>955 iアプリ自体が向いてないって話なんだが。
全部Canvasで実装するか、素直にi-modeコンテンツを用意したほうが
いい。HTMLを自前でレンダリングするのは大変だと思う。
iアプリを連動させたいなら、504以降ならブラウザから起動できる。
<PARAM>タグを使えばパラメータも渡せる。
後はドキュメント嫁。これ以上甘えんな。
>>957 ありがとん。
じゃあ適当にタグを限定して展開するルーチンでも実装することにしますわ。
どもでした。
>>946 どうもありがとうございます。
なかなか早くなりました。
携帯に内蔵されている明るさ調節機能だと1〜2で実行出来るんですが、
あれは一体どうやっているんでしょうね。。。
>>954 アドバイスありがとうございます。
今回はアプリとしてどうしても作成したいので…(^^;
Doja3準拠で作成しているのでDoja1時に比べると,機種依存は少ないって
どっかのHPで見たんですが,まだ完璧に改善されては無いんでしょうかねぇ…
テキストボックスのfocus取り上げとsetEditable.falseで何とか
逃げ切ろうと思います。
何度も質問すみません
ttp://www.wansta.co.jp/iap/kamoku.html ここにあるようなインターフェースはCanvasを用いてるんですよね?
getLineBreak, getChars, getFontなんかを組み合わせて実現するってことですか?
難しそうですね…(´・ω・`)
でも立ち向かってこそプログラマ,ド素人ですが頑張ってみます(`・ω・´)
>>961 Canvasだね、十中八九。
つうか、「ごたく」でしょ、これ。問題の内容が違うだけで。
これで1000円ってぼろいな。
Graphicsのメソッド見ればほぼOK。太い線に囲まれた問題表示は、
fillRectで黒で全体、白で上部、青で下部に四角い塗りつぶしを描く。
あとは座標計算だけ。
・文字列の幅を取得
int width = Font.getDefaultFont().stringWidth("問題です");
・色を変更
g.setColor(Graphics.getColorOfName(Graphics.NAVY));
API見ただけでわかり辛いのはこんなもんかな?。
後はググってプログラミング情報を公開しているサイトを探すべし。
アスキーから出てる本はいろいろ書いてるが高い。古本屋探すべし。
楽天EasySeekとか日本の古本屋とか、実際に神田行くとか。
963 :
デフォルトの名無しさん:03/10/25 18:54
すいません、「☆初心者☆」です。
いや、iアプリを作ろうと思ったらDojaが動かなくて困ってます。
JDK1.4入れて、パス通してDojaいれて起動しようとすると
Dosプロンプトの画面が一瞬でて消える。
コマンドラインから実行すると
Java is not installed
と、言われる始末。入ってるのに無いといわれるので途方に
くれて困ってます。どうすりゃいいんでしょう?
confファイルみたいなのもないし、ログもでないし・・・。
てことで、どなたか同様の現象を解決したことがある方
おしえてください。お願いします。
両方消して再インスト
あとDojaでの公式対応JDKは1.3
それでもダメならまた来なさい
965 :
デフォルトの名無しさん:03/10/25 19:53
>>964 レスどうもです。ちょうど今やってまーす。
パスはjdk\binに貼るぐらいで後はいりませんよね?
基本的に自分でパス通す必要はない
>>951 GETのときにcontent-typeを設定してハマってる人が多いのがいつも
気になってるんだけど、なんでそれを設定しようっていう気になるの?
>>962 とってもわかりやすくご説明いただき有難う御座います(・∀・)
これならド素人でも何とかできそうかも
ガンガりまっす(・∀・)9
>>967 >>951はどこかのGIF落とすサンプルのコピペに見える。
結構content-type指定してるサンプルって多いよね。
ところで、今.mdlファイルをphp経由でiアプリに落としたいんですが、
試しに普通にi-modeで繋ぐと文字列として認識されます。
サーバー側のcontent-typeが分からないんですが何を指定すれば
いいんでしょうか?
フリーでiメロディを配布しているサイトで、CGI経由の奴をPCからDLすると
普通にダウンロード用ダイアログがでるのに、そのphp経由だと
PC上でも文字化け文字列になるので、content-typeがおかしいんだと
思うんですが。
970 :
デフォルトの名無しさん:03/10/25 23:24
すみません、ここで「作って欲しいiアプリ」のリクエストとかしたら、
聞いてもらえたりしますか?
スレ違いだけど、簡単なものだったら誠意しだいじゃないの?
例えば970踏んだ君が次スレ立ててくるとか
972 :
デフォルトの名無しさん:03/10/26 01:29
質問です。
アプリとは別のサーバにある画像を取り込む事って出来ないんでしょうか?
よろしくお願いします。
>>970 暇と内容と、誠意次第かなぁ。
>>972 505から加わったiアプリDXなら別鯖にも繋がる。でも
公式サイト以外作れない(たしかID発行?)
それ以外の方法としては、自鯖のCGIをプロキシにするという手がある。
2chビューワがそれやってる。検索すればソースが転がってたはず。
>>973 ありがとうございます。
別サーバに接続なんてのが出来れば、i-shotで送られてきた画像も
保存できるんじゃないかなぁ・・・なんて都合の良い事を考えてたんですけどね。
やっぱり無理そうですねぇ。。。
>>969 http://www.zdnet.co.jp/mobile/0104/27/ijava_14.html このへんですね…
> 筆者がN503iで試したところでは,
> setRequestMethodやsetRequestPropertyは実行するメソッドがGETで,
> 取得するデータがテキストの場合は省略しても動作するようだ。
> だが,ほかの機種で何が起こるかは不明なので,
> 上記のような作法に従っておいたほうがよさそうだ。
大嘘じゃん。
GETのときのcontent-typeは本来指定しないものだとおもうけど…
N503iではたまたま無視されているだけじゃないのかな?