[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/03 10:29 / Filesize : 229 KB / Number-of Response : 913
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

iモード携帯電話用Java(iアプリ) Part19



1 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:36:05 ]
NTT DoCoMoのiモード携帯電話用Javaに関する話題を扱うスレッドです。
Doja、Starいずれも扱います。質問時には明記してください。
次スレは>>980が宣言して立ててください。

※DoCoMo以外は下記スレへ。
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/

■ iアプリ特有ではなくJava一般に関する質問はこちらへ
【初心者】Java質問・相談スレッド116【歓迎】
ttp://pc11.2ch.net/test/read.cgi/tech/1213347130/

■関連スレ
【日本携帯】Mascot Capsule/Micro3D【標準】
ttp://pc11.2ch.net/test/read.cgi/tech/1117773530/

511 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 00:01:26 ]
String.split() が無いみたいなので以下のようなコードを書いたのですが、遅いです。
何かいい方法無いですか?

String[] splitString(String str, String sep)
{
int i, curIndex = 0, cnt = 1;
while((i = str.indexOf(sep, curIndex)) >= 0)
{
curIndex = i + 1;
cnt++;
}
String[] ret = new String[cnt];
curIndex = 0;
for(i = 0; i < cnt; i++)
{
int nextIndex = str.indexOf(sep, curIndex);
if(nextIndex < 1)
nextIndex = str.length();
ret[i] = str.substring(curIndex, nextIndex);
curIndex = nextIndex + 1;
}
return ret;
}

512 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 09:20:58 ]
問題になるほど遅くならないと思うが・・・
一応、2度indexOfしてるからだろ。
1回目でどんどん分割したStringつくっちゃえよ。

retを十分大きな配列として持っていてもいいし、可変長配列のVectorを使ってもいい

513 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:14:42 ]
>>512
ret を余分に取ると、使用しなかった分の要素を取り除くために配列をコピーしなければ
ならないので余計遅いみたいです。
あと、Vector も無いみたいですけど。

514 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:57:20 ]
vectorがないわけねーだろ

515 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:00:40 ]
512じゃないけど。

ret を余分に取った分はnullが入るから、
わざわざコピーし直さなくてもいいのでは。
nullが来るまでの条件でループして参照すればいい。

java.util.Vector
CLDCのリファレンスは読んでないの?
でもVectorを使うほうが遅いと思う。

516 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:28:32 ]
>>515
そもそも String.split() したい文字列の要素数が大きく違うので、要素数が少なかった場合に
不要分領域がもったいないと感じるのですが。
それと、String[].length() を使いたいので、要素が null になるまでループさせるのもスマート
じゃないなと思います。

Vector はありましたね、すみません。
import 忘れただけみたいです。
でも遅いッスね。

517 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:25:59 ]
lastIndexOf(int ch)使ったら?

518 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:40:19 ]
>>517
どう使えばいいのか分かりません。

519 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:45:45 ]
>>516
Stringの参照が配列になってるだけだから、
そんなにメモリは食わないかなと思ったり。

要素数はいっそのこと↓みたいにしてしまって、
int splitString(String str, String sep, String[] res)
String[]は引数で返して、要素数は戻り値で返すとか。



520 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:13:16 ]
Cじゃねーんだぞw

521 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:23:01 ]
>>519
それも何かスマートでないような・・・。
あと万一、要素数があふれた場合対処できないですよね。 > 引数で返す

ここまで来たら class にした方がいいのでしょうか・・・。

522 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 10:07:30 ]
結果が可変長になる段階で、511みたいな「2度読み」をするか、メモリーコピーは必須だろが
速さもメモリー効率も両方欲しいとか、Javaでなんつーいい草だ・・・

あと、そもそも口調がイラつく

523 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 11:53:47 ]
VectorはObject型だからpushでもpopでも毎回castが入って遅い
可変長配列を自作しろ

524 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:05:27 ]
>>516
遅いってどのくらい?

525 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:24:53 ]
クアッドコアのPCよりはるかに遅いってことだろ

526 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:29:20 ]
arrayList実装そのまんまだ。これで遅けりゃあとは気合でカバーせよ。
public String[] split(char spliter) {
int resultCount = 0;
String[] resultBuff = new String[10];
StringBuffer sb = new StringBuffer();
for (int i = 0; i < source.length(); i++) {
char c = source.charAt(i);
if (c == spliter) {
if (resultBuff.length - 1 == resultCount) {
String[] tmp = new String[resultBuff.length * 2];//配列を2倍のサイズにする
System.arraycopy(resultBuff, 0, tmp, 0, resultBuff.length);
resultBuff = tmp;
}
resultBuff[resultCount] = sb.toString();
sb.setLength(0);//バッファのクリア
resultCount++;
} else {
sb.append(c);
}
}
if (sb.length() > 0) {
resultCount++;
}
String[] result = new String[resultCount];//結果サイズの修正
System.arraycopy(resultBuff, 0, result, 0, resultCount);
if (sb.length() > 0) { //尻データをくっつける
result[resultCount - 1] = sb.toString();
}
return result;
}

527 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:51:00 ]
みなさんありがとうございます。
いろいろいじってみます、ぬるぽ。

528 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 23:53:49 ]
画面の色を反転しようと思い
Graphics.getPixels→得られた配列を色反転→setPixels
したら7FPSしか出ません・・。画面サイズは480x560です。エミュ上とはいえ遅すぎです。
画面を小さくすれば29FPSぐらいにはなるんですが・・小さくしたくないです。
もっと速くできないでしょうか?

529 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:21:55 ]
毎回色反転させるんじゃなくて、色反転メソッド呼んだらバッファのイメージを裏返せば良いだけだと思い。



530 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 11:01:12 ]
Vistaだから遅いんじゃないの?
VistaPack2はさらに遅いよ
急にファンの音がうるさくなって動きがカクカクになるし
メモ帳のスクロールだけでもCPU使用率オーバーで動きが止まる
ひどいOSだ

531 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 12:35:10 ]
お前だけ

532 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 17:40:27 ]
Windows7はさらにひどいことになるんだろうな
もしかしたらエミュが起動すらしないかもしれん


533 名前:528 mailto:sage [2009/06/11(木) 22:17:27 ]
>>529
毎回色反転させない?STGで使おうと思っているのでそれは無理なのでは・・
lockでダブルバッファリング開始
fillRectで画面クリア
drawImage画像を描画
getPixelsで画像を取得
for(int i = 0; i < numPixels; i++)
pixels[i] = pixels[i]^0xFFFFFF; //色反転
setPixelsで反転した画像をセット
unlockでダブルバッファリングを終了

無駄な処理があるのでしょうか?色反転処理が一番時間がかかっているようですが、
処理が単純なのでこれ以上速くはできないと思います。OpenGL ESならglBlendFuncとか
あるのに・・
>>530
Vistaじゃないです XPです。
自分のPCではないですが、VistaでiDKが入っているPCがあって
そのPCではむしろ自分のPCより高速に動作しています。

534 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:33:34 ]
Graphics2を使ってもいいならできそうだけど……。
 1. Graphics2#getImage()で対象範囲をImageに保存
 2. Graphics#fillRect()で対象範囲を白で塗り潰す
 3. Graphics2#setRenderMode(Graphics2.OP_SUB, 255, 255)
 4. Graphics#drawImage()で保存したImageを描画
白に対して減算で描画すると色が反転する。
あらかじめImageに描画するようにしておけば手順1のロスは無くなるかも。

535 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 09:26:13 ]
>>533
気持はわかるんだけど、携帯アプリ的には発想を間違えてると思われ。
描画した内容を反転させるんじゃなくて、反転済みの画像を使って描画するのが良いかと。

あと、getPixelsとsetPixelsのエミュ上での動作が遅いのは、昔からの既知の問題。
実機ではそこそこスピードでるはずだよ。試してみるといい。

エミュ上ではあきらめて、画面上に「反転させてます」とか表示させておくだけにして、実機Verでは実際に反転させるほうが良い。

536 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:24:58 ]
ラスタ処理じゃ駄目なんかね。
画面を真っ白にしておいてから、ラスタ減算で画像を描画すれば大丈夫なんじゃないだろうか。

537 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 15:10:26 ]
携帯の実機で機種依存の処理速度の差がでそうだし
やはり通常は反転画像も用意すべきかとおもうガッ
全画面の反転か・・
シューティングっていってるしダメージエフェクトだとおもうが
一瞬背景だけ単色塗りつぶしとかじゃだめなのかなぁ・・


538 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 21:24:37 ]
処理速度といえばアプリベンチはもう復活しないんだろうか

539 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:27:26 ]
新型の携帯はアプリサイズが480X480だけど
以前の240X240のあぷりはどう表示されるの?




540 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:55:51 ]
480x480とかやめてほしい
もう240x240は時代遅れなの?

541 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 18:46:14 ]
>539

倍角表示

542 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:32:45 ]
iアプリの画面サイズって480x480までなの?
480x854は?

543 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:20:14 ]
RTFM

544 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 02:00:31 ]
>>542
DoJa のデフォルトは240×240
Star のデフォルトは480×480
任意のサイズにしたければADFのDrawAreaにその旨を記述する


545 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 19:35:50 ]
480X480以上のアプリだと
通信料4〜5倍になるね
作るほうもダウンロードするほうも大変だ

546 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 20:04:19 ]
なるわけないだろ

547 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:17:02 ]
>>488
たぶんバグというよりも、昔の機種からの定数を修正していない
って感じだと思うよ。Nだと「仕様です」で終わりだと思われ。
容量に依存しないようにがんばるか、自前で機種名->容量の表
を持つしかないでしょうね。

548 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:31:38 ]
通信中に中断させるにはどうすればよいですか?
電波が悪いとかで予想外に時間がかかるときに中断させたいのですが。

549 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:42:32 ]
電源を切る



550 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:05:34 ]
水をかける。


551 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 21:43:57 ]
通信スレッドにinterruptかけたら止まった気がする。

552 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 21:53:36 ]
Graphics3Dを使って2D描画をするプログラムを作ってみたら、
■■■■■■■■
■           ■
■           ■
■           ■
■           ■
■           ■
■           ■
■■■■■■■■
みたいな画像(本当は256x256ある)が
■■■■■■■■
■■         
■■         ■
■■         
■■         ■
■■         
■■         ■
■■■■■■■ 
のように、ぎざぎざになってかなり汚く表示されてしまいます・・。
↓のスレに書いてあることは嘘なんでしょうか。Doja5.1でも
全部intみたいですしバイリニアフィルタの設定は見当たりません。
【日本携帯】Mascot Capsule/Micro3D【標準】
28 名前:デフォルトの名無しさん[sage] 投稿日:2005/06/12(日) 23:52:28
>>27
DoJa4.0ならfloatで処理される&バイリニアフィルタが効くからかしら。

553 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 01:18:43 ]
線形補間機能はなかった気がするが…

554 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 01:44:46 ]
てくちゃあが裏面にも貼られるわけだから、それを考慮しないと
ギザギザになるのはてくちゃあが伸ばされてるからだと思う

555 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:42:12 ]
手臭ぁ?
THEXDER?

556 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 15:21:03 ]
>>552
MascotCapsuleってエミュ上だとそうなった気がする
実機だとちゃんと描画されたハズ
あと右と下の1ラインが削れることがあるがそれも仕様だったかな

557 名前:556 mailto:sage [2009/06/19(金) 15:27:45 ]
追記
ttp://www.mascotcapsule.com/ja/support/faq_engine.php#5

こんな風になるって事だよね?


558 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 21:12:21 ]
テクスチャの補完はDoJaは無いな、Softbankの方の機能だっけか
intかどうかは、MascotCapsuleのバージョン3か4かによるな
キレイにテクスチャを2D表示するなら、右下頂点を1pixelずらして発行

559 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:53:07 ]
売られてるiアプリのゲームのソースみたらGC.collect()だらけで泣けた
javaで作る意味ねえよ



560 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:39:06 ]
>>559
VMのガベージコレクションがおっつかないからやってるんでしょ?
むしろよく作ったと褒めてやりたい

561 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 17:25:43 ]
gc.collect() なんてあったっけ?(´・ω・`)

562 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 17:46:09 ]
System.gc()じゃない?
変なタイミングでGCの負荷が掛からないように、
影響が少ないところでちょくちょく呼ぶのは普通だと思う。
iアプリに限ってだけど。

563 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 18:19:31 ]
>>560
>>560
>>560
>>560
>>560


564 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 18:31:17 ]
>>560 の身に何かあったようだ。

565 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 19:15:17 ]
やたらとSystem.gc()なんて呼んだらそれこそ妙なタイミングでよばれそうだけど

566 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 19:23:42 ]
大丈夫、どうせ期待するほど動いてくれない

567 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 21:02:55 ]
System.gc()って呼ばれた時点で処理されるわけじゃないからVMに任せたほうが

568 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 02:45:47 ]
つーか、特にゲームの場合はデザインポリシーというか好みの問題だな。

アクションゲームの場合、VMに任せて敵に囲まれた所など嫌な所で秒単位で硬直されるより、
数フレーム毎にGCを掛けてちまちまと僅かに体感できるレベルで硬直した方がゲーム
レスポンス的にストレスが少ないだろう、という考え方がある。

569 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 05:23:26 ]
それなら1フレーム1回GCすればいいわけで
ソースをGCだらけにする必要は全くない



570 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:12:35 ]
毎フレームGC呼んでると、フレームレート落ちまくるわ
俺はUI呼び出しとかの状況切り替え時、ファイル読み込み直前、
あとメモリの空きエリア監視しつつ少なくなってきたけど少し余裕ある、というときにgcしてる。
gc予約自体は、ネストの奥でやっても処理されにくいので、上のほうでやるのが吉

571 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:21:37 ]
503時代から毎フレームgc呼んでるな

572 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 12:49:33 ]
毎フレームGCが、iアプリではお約束だろう

573 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 13:15:13 ]
Eclipseからiアプリツールを起動すると、普通に起動したときと違って
エミュレーターのウィンドウだけが出て起動しますが、あれはどんなコマンドラインオプションで
起動しているんでしょうか。DeviceGuide見ても書いてないです。
doja.exe -i "foo.jam" -m だと普通の起動になります。-m外すと起動しません。

574 名前:デフォルトの名無しさん [2009/06/24(水) 10:58:19 ]
iアプリから通信して画像を取得したいです。
で、iアプリをダウンロードしたホストからしか通信できないって仕様にかいてあるんだけど、やっぱりサブドメインとかもだめですか?
example.com からダウンロードして static.example.comから画像を取得することは無理でしょうか?

575 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:31:58 ]
だめ

576 名前:デフォルトの名無しさん [2009/06/24(水) 21:41:13 ]
>575
だめですか。回答ありがとうです。

ちなみにiアプリの通信をテストするときって実機じゃないと駄目だみたいな
ことが書いてあったんですが、効率のいいデバッグの方法なんぞあるものでしょうか?

577 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 01:10:14 ]
エミュを設定すれば通信できますが

578 名前:デフォルトの名無しさん [2009/06/25(木) 09:40:15 ]
>577
そうなんですか!ドキュメント読み不足です。試します

579 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:07:09 ]
一度保存した動画データのInputStreamが欲しいのですが
1. MoveiStore.addEntry()で動画データを保存して、エントリIDを取得
2. 取得したエントリIDを使い、MovieStore.getEntry()でエントリの取得
3. 取得したエントリを使い、MovieStore.getInputStream()でInputStreamを取得
しようとしています

N906iならうまくいくのですが
F906iでは2.の部分でUnsupportedOperationException(端末がこのメソッドをサポートしていない)エラーが出ます

これは、プログラムが間違っているんでしょうか?
エラーの通り、端末が対応していないからあきらめるしかないのでしょうか?
それとも別の手段で解決できるんでしょうか?




580 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:12:33 ]
アプリコンテンツ開発ガイド for DoJa-5.x 各機種オプションAPI・拡張API実装状 (PDF形式:406KB)

を読め

581 名前:579 mailto:sage [2009/06/25(木) 17:26:18 ]
読んだ

結局、NとSH以外は対応していないし、代替手段も無いってことでいいのかしら?


582 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:52:25 ]
iアプリで使える画像や音声の形式がどこに載っているんでしょう?Doja5.1です。
GIF、BMP(8bit)、MLD、MIDIは使用可能っぽいですが。

583 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 23:08:04 ]
公式サイトの開発ガイド

584 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 03:28:55 ]
DoJa 3.5 で PalettedImage を使っています。
getPalette() した Palette の色値を加工して setPalette() で書き戻したいのですが、getPalette() で
得た Palette の getEntry() が返してくる値のフォーマットが分かりません。
R、G、B 値に変換する方法はありませんでしょうか?

585 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 05:49:21 ]
>>584
機種依存の値が返ってくるので加工は難しいはず
なので自分は別途RGB値データを用意してそこから加工・設定してました

586 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 06:38:27 ]
変換するならImageにいっぺん描画してGraphics取ってから
getRGBPixel()使うようかね。

587 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 07:08:14 ]
>>585
えー。 > 別途RGB値データを用意
やりたいのは不特定多数のイメージ (透過 GIF) の色を徐々に黒くする事なんですが、パレットの
色情報を別途保持する以外にやり方は無いって事ですか?

>>586
それってピクセルとパレットの対応ってどうやって調べればいいのですか?
っていうか、Image 経由するなら PalettedImage 使う意味無くありませんか? 速度的に。

588 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 10:10:26 ]
無理な物は無理


以上

589 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 10:51:43 ]
ドキュモが国際標準を無視した弊害です
上のがいやならアルファブレンドしる



590 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 15:59:23 ]
無理ってことはないだろお前ら。
昔αブレンドするとき、getRGBPixelみたいな「0x00RRGGBB」形式で取得する方法なんて無かったから
起動時に
255, 0, 0
0, 255, 0
0, 0, 255
で塗った場合のネイティブカラー値を調べて、その機種がどの色のどの位置に何ビットRGBを割り振ってるのか調べて
挙動を変えるように作ったぞ。

591 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 16:26:03 ]
だからそれをやれと言っているわけで
そんなまどろっこしいのが嫌なら無理だと言っているわけで

592 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 16:27:50 ]
>>590
目から鱗が落ちました

と思ったけど、自分がそのへん調べたときは
規則性が見えない値が返ってきて、首を捻った記憶もあるんですよね…
RGBが各ビットと対応してる機種もちゃんとありましたが、
よく使う色にだけインデックス番号でも割り当てて管理してるのかコレ、
なんでこの色だけはこの値が返ってくるのよ、てな機種もあって…

何にせよ、機種を絞れば無理ってことはないですよね

593 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 16:29:14 ]
機種依存値とかキャリアから情報が提供されてるならともかく、
推測でいじるとか出来るだけしたくねぇw

でも、まぁ、これだけ情報あって出来ないようなら
>>584には無理だろ。
速度はそれこそ無理な物は無理だ。

594 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 16:46:52 ]
>>587
今時のアプリ制作者には笑われるかもしれませんが
自分、フェードアウトさせるときは、黒のディザパターンで塗って誤魔化してました
昔の機種の中には、PalettedImageの描画が異様に遅い機種があって、バグ報告が…
「PalettedImageの使い方、ゲットだぜ!」と喜びながら実装してたので
結構ショボーンしながらディザ塗りに修正した記憶があります
二度描きするから描画時間は無駄に増えるはずですが
それでもPalettedImageで描くより速かったですね…

別企画では、どうしても容量の関係でPalettedImageを使うしかなかったのですが
その時は、不具合報告のあった機種だけ、フレームレートを落として動作させました
クライアント様に
「容量の関係でどうにもならないッス。フレームレートを落とすか、この機種は非対応にするか、どっちか選んでください」
の二択を打診した記憶があります

…なんかコレ、前にもカキコした記憶があるな…

595 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 17:10:09 ]
そもそもVMが統一されてないってのがいくらなんでも酷すぎるだろ

596 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:40:39 ]
>>594
おれもやったこと有るよ
そんなに昔でもない時期だけど
とにかくクライアントが「全機種対応で」っていうから
仕方なかったんだ

597 名前:584 mailto:sage [2009/06/27(土) 03:37:41 ]
えー、皆さんお騒がせしました。
結論から言うと、>586 の方法でできました。
>587 にああ書いたのは、イメージ全体に対してピクセル判定しなければいけないのかと
勘違いしたからです、すみません。

>>594
「PalettedImageの描画が異様に遅い機種」 思い出せますか?
可能な限りでいいです。

598 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 08:15:46 ]
俺は知らんがきっと902以前のDだと思うw

599 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:13:39 ]
日本のメーカーじゃない機種は最新型でも遅いらしいよ




600 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:50:44 ]
>>599
vodafone末期に関わって血尿出してた日々を思い起こせば
遅いくらい、なんてことない

今までの実績のせいか、海外製は非対応にしたいと提案すると
通りやすいから助かりますw

601 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:55:23 ]
その辺が携帯アプリ特有の「仕様削減」と「非対応」だなw
ビジネスとかコンシューマで育ってると非対応にするって
考え方が無いから困る。

携帯は開発費も利益も低いから、その見切りのつけ方が無いと
仕事にならないってのもあるが。

602 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 04:40:10 ]
雑談は程々にするがいいぜ

603 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:33:32 ]
iアプリでPNG読み込む方法って無いですか?
標準だと読み込み可能な形式はGIF、BMP、JPEGのみですが
GIFは256色しか使えないし
BMPは無圧縮ででかいし
JPEGは非可逆圧縮だし・・

604 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:16:17 ]
デコーダを書けばいいんでね?
まぁ、BMPもzip圧縮かければ結構小さくなる。

605 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:16:58 ]
>>603
「非可逆圧縮」という言葉に捉われ過ぎじゃないの?
JPEGで十分じゃない?
圧縮率上げなければ見た目何が削れてるかわかんないし。

606 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 10:49:34 ]
非可逆だからダメと言っている相手に「非可逆でもいいじゃん」って解決策を出すのはどうなんだw

>>603
自前デコーダを移植したことあるけど、バリバリにチューンしても遅くて使い物にならなかったよ。
256x256画像のデコードで3〜5秒とか当たり前。
それでもよければ、Cで書かれたPNGデコーダを探して移植してみ。

607 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 12:01:32 ]
そのまま移植したら遅い
CRCチェックとか余計な部分は省かないと

608 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:27:48 ]
>>607
えーっとね・・・
一応色々と工夫はしたからね?

609 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:37:55 ]
>>608
偉そうだな ┐( ̄ヘ ̄)┌ ヤレヤレ




610 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:39:46 ]
嫌みではなくソースが見てみたい

611 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 18:48:18 ]
>>609
偉そうなのはお前だw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<229KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef