5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

CLDC+MIDP+携帯電話用Javaスレッド part 2

1 ::03/12/08 13:49
J2ME CLDC+MIDPベースの携帯電話用Java(主にEZアプリ、Vアプリ)に関するスレッドです。
質問でも議論でも何でもこい、と。

前スレ:
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/

--
Java一般に関しては:
【初心者】Java質問・相談スレ37【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1070159693/

NTT DoCoMoのiモード携帯電話用Java(iアプリ)については:
iモード携帯電話用Java(iアプリ) Part 4
http://pc2.2ch.net/test/read.cgi/tech/1067139509/

>>2あたりにリンク集


935 :デフォルトの名無しさん:04/08/05 00:52
>>933
できるかできないかということなら、できないということはない、ってとこかな。
PNGのバイナリデータを直接いじる必要があります。
JSCL1.2ならImageに読み込んで、描画する際にいろいろできるけど。

わざわざBMPからPNGに変換してるような変な人はいないと思われ。

936 :デフォルトの名無しさん:04/08/05 02:26
>>934,935
純粋なMIDP1.0だけではやはり無理ですか。

ただ、画像ファイルがいっぱいあり、どうにかしてアプリサイズを小さくしたくて、
実行時に画像ファイルを作り出すようなことをしようと思っております。
幸い、左右対称、上下対象な画像データが多いので、どちらか半分だけ画像データとしてもっておいて、
実行時に反転して読み込んで一枚の画像にしようかと、、、

その際、PNGデータを直接扱うよりかは、BMPの方が簡単そうなので、
BMPで元データを作って、実行時にPNGデータを作り出すのはどうだろうか?
と考えた付いた次第です。

みなさんは、大量にデータファイルがある場合にどうやってアプリサイズを小さくしているのでしょうかねぇ・・


937 :デフォルトの名無しさん:04/08/05 03:11
どんなにたくさん画像使ってんだろ。
VならとっととSprite使うのがいいな。

938 :デフォルトの名無しさん:04/08/05 05:08
>>922
その質問は、Javaではなく、HTTPの質問ってこと?
設定するってのは、リクエストのAcceptヘッダと
レスポンスのContent-Typeヘッダのことだよね?

application/java や application/java-archive は Java。
テキストなら text/* 、イメージなら image/* などになる。

あと、VはDと違って、TCP/IP上のHTTPのはずだから、
特別なことはないと思う。でもゲートウェイが邪魔することはあり。


939 :デフォルトの名無しさん:04/08/05 05:21
>>936
サイズを小さくするのに BMP を使うって、なぜ?
BMPの方がでかくない?

どんな画像データか知らないけど、プログラムで描けないの?


940 :デフォルトの名無しさん:04/08/05 07:38
>>936
容量制限ギリギリの攻防でないならアプリサイズを小さくする努力はしない。
画像ファイルが多くて容量の関係からリソースに含めきれない場合、
アプリ起動後にサーバから取得してストレージ領域に保存する。
画像は基本的にPNGフォーマット。

いくら線対称な画像だろうと内部で生成することは考えない。
90度単位の回転、上下反転、左右反転で使い回せる画像なら
正位置の画像だけ持っておき、描画時にそれらの操作を指定して表示する。
もちろんauやVodafoneが用意している拡張Graphicsクラスを使ってだ。
自分の場合はMIDP1.0のみにこだわる必要がないのでこのようにしている。

941 :デフォルトの名無しさん:04/08/05 09:23
>>936
透過属性がなくてもいいなら、
Image.createImage(w, h)
で動的に作り出せるよ。

あとスピードを求めないなら、左右対称とかは楽勝だけど。
1ドット幅づつ逆からdrawImageしていけばいい。

942 :デフォルトの名無しさん:04/08/05 09:32
VアプリにてPNGを仮想画面(drawBackgroundで描画する領域)に描画することは
出来るのでしょうか?
出来るのなら方法を教えてください。


943 :デフォルトの名無しさん:04/08/05 10:12
Vアプリ開発ガイドによると
C型だとACanvas、P型だとSpriteCanvasでpaint()をオーバーライドすれば
Graphicsメソッドを呼び出せるらしいです。
注意点が幾つかあるようなのでガイドを参照した方が良いと思う。


944 :デフォルトの名無しさん:04/08/05 10:17
ガイドは
http://developers.vodafone.jp
のVアプリ開発ガイド[開発編]
http://developers.vodafone.jp/dp/tool_dl/download.php?docid=302
です。


945 :デフォルトの名無しさん:04/08/05 10:18
iアプリだとカメラ画像を読み込んでアプリの背景等にdrawImageをすることができるのですが、
Vアプリでも同様なことができるのでしょうか?
サンプルサイト等ご存知でしたら教えて下さい。


946 :デフォルトの名無しさん:04/08/05 10:38
>>945
SpricateCanvasのpaintのGraphicsに対する描画は背景になされるので、
paintでGraphicsに描画後copyAreaで転送して、
フレームバッファでさらに加工してdrawFrameBufferすればOK


947 :945:04/08/05 10:50
>>946
レスありがとうございます。
私は942の方とは別人です。
カメラ画像のファイル名選択および読み込みの部分はご存じないでしょうか?


948 :922:04/08/05 14:13
938さん レスありがとうございます。

サンプルプログラムがあるサイトなど、
ご存知でしたらリンク貼って頂けますと助かります。


949 :デフォルトの名無しさん:04/08/05 17:21
VODAで、アプリからクリップボードにテキストをコピーする方法ってないですか?
VODAのJAVADOC探してるんですが見つけられません。


950 :デフォルトの名無しさん:04/08/05 17:36
>>949
ありません。

951 :933 & 936:04/08/05 23:07
みなさん、レスありがとうございます。

>>937
>VならとっととSprite使うのがいいな。

残念ながら、SprintPCSなんです。

>>939
>サイズを小さくするのに BMP を使うって、なぜ?
>BMPの方がでかくない?

確かに元データはでかいですけど、JARにすれば小さくなるので、
ひとまずOKかな、と。
まずは実行ファイルサイズ容量をどうにかするのが先決なので、、
その後、ヒープが足りなーいとなるのかもしれませんが orz..

>>940
>画像ファイルが多くて容量の関係からリソースに含めきれない場合、
>アプリ起動後にサーバから取得してストレージ領域に保存する。

これが有力候補ですね。

>>941
>透過属性がなくてもいいなら、

残念ながら透過属性が必要なんですよ。。


952 :デフォルトの名無しさん:04/08/06 00:36
>>951
普通に考えてBMPをJarに入れたとき、PNGより小さくなるとは思えないよ。
PNGの圧縮は効率が良くなるようにフィルタ処理も加わるから、大抵素の物をdeflateするよりは小さくなるの。
Jarの圧縮によっぽど優秀なdeflateツールを使って、PNGのツールがヘタレなら逆転するかもしれないけど。

953 :946:04/08/06 00:52
>>949
機種依存になるかもしれないけど、
東芝機種はTextFieldなどでユーザに文字入力をしてもらっている画面でコピーができるので、
ユーザに手動でコピーしてもらえる環境を用意することはできる。
あんま使えんけど。

>>947
なら、CameraConnectionとStorageConnectionのクラス概要くらい嫁。

>>951
試しに、BMPをzip圧縮してみ。
どれだけ使えないかがわかる。
とっととPNGにしる。


954 :デフォルトの名無しさん:04/08/06 08:36
俺は1ドットずつ打つ処理を高速化するために、バイト配列→無圧縮PNGやってた。

>>953
携帯で使うサイズくらいならPNGファイルよりもBMPのときの方がいい場合が多いよ。
余計なヘッダないし。

955 :デフォルトの名無しさん:04/08/06 08:40
使うグラフィックを大きな画像一つにまとめて、Imageの切り出しで使うってのはどうなんだろ。

956 :デフォルトの名無しさん:04/08/06 08:58
>>955
そこが不思議なんだよな。
大きな画像1つにまとめた段階で、透過属性がなくなってしまうのだが…。

957 :デフォルトの名無しさん:04/08/06 12:30
まとめた段階でというか、切り出したときに透過属性が付加されないんでしょう。

958 :デフォルトの名無しさん:04/08/06 18:00
すみません、JARツールのことで質問です。

JARにディレクトリを指定し、その中の特定のファイルだけをアーカイブに
含めないようにしたいのですが、JARツールでこのようなことは可能でしょうか?
オプションを見る限り無理っぽいのですが、別のツールを使った方法などで
やり方をご存知の方いらっしゃったら宜しくお願いします。

具体的には以下の様なケースです。
res/aaa.gif  ←
res/bbb.gif  ←resフォルダ中のファイルはJARに含めたい。
res/ccc.gif  ←
res/.svn/・・・ ←このディレクトリ以下のファイルはJARに含めたくない。

要はファイルをSubversionで管理しているのですが、その情報がディレクトリに
含まれてしまうのでJARから除去したいのです・・・


959 :デフォルトの名無しさん:04/08/06 18:24
バッチファイルで
resフォルダをcopy、
コピったフォルダから.svnフォルダ削除、
jar -C コピッたフォルダ
削除 /Q コピッたフォルダ
むにゃむにゃ。元通り。jarゲット。なんてね

960 :デフォルトの名無しさん:04/08/06 18:29
eclipse は楽でっせ

961 :デフォルトの名無しさん:04/08/06 18:38
eclipse起動遅いからイヤン

962 :デフォルトの名無しさん:04/08/06 20:13
うちは、
resOrgフォルダっての作って、そこをSubversionの対象にして
resフォルダは対象外にしてる。
で、バッチファイルでresOrgからresにコピーしてから、jarを作成するようにしてる
これじゃめ?

963 :962:04/08/06 20:16
あ、結局リソースを削除したときに残るから
make前にresフォルダ内をクリアしてるわ

やってることは、959とほぼ一緒でした。

964 :デフォルトの名無しさん:04/08/06 20:33
>958
antのjarタスクで、filesetのexclude使えば解決。

965 :デフォルトの名無しさん:04/08/06 21:46
そろそろ次スレ準備?

966 :デフォルトの名無しさん:04/08/06 22:21
立てたっす
CLDC+MIDP+携帯電話用Javaスレッド part 3
http://pc5.2ch.net/test/read.cgi/tech/1091798483/

967 :デフォルトの名無しさん:04/08/06 22:40
>>966
乙!

968 :951:04/08/07 00:10
>>952,953
おっしゃる通りですね。BMPより強力なPNG圧縮かけたほうが、
サイズが小さくなりました。

>試しに、BMPをzip圧縮してみ。

1. BMP 474KB -> JAR 24KB
2. 1.のBMP無圧縮PNG 475KB -> JAR 25KB
3. 1.のBMP圧縮PNG 20KB -> JAR 20KB

素直に、最大限圧縮したPNGファイルを反転したファイルも含めて
JAR化してやった方がいいのかな・・

>>954
無圧縮PNGで実行時に画像ファイル作成されたんですね!
実機での調子はいかがでしたか?
メモリ使用量、読み込み、表示レスポンスなど、問題なかったでしょうか?



969 :954:04/08/07 22:14
>>968
A5403CAだったけど、256*240の画像でバイト配列から無圧縮PNGにするのに1秒強くらいかかるよ。
メモリ使用量までは覚えてないや、ゴメン。

970 :デフォルトの名無しさん:04/08/07 23:29
>969=954
横からスマソだが
何かそれだと、オフスクリーンのImage持っといてそこに描いた方が
早そうに思えるんだけど……漏れ何か読み落としてマスカ??

971 :954:04/08/08 00:29
>>970
俺の場合、リアルタイムに256*240の画像を作成する必要があって、
普通に1pixづつ描いていたら時間がかかるから、バイト配列→PNG
という手段にでただけ。なので、オフスクリーンとかは関係ない。


972 :デフォルトの名無しさん:04/08/24 14:10
お世話になってます。
おかげさまで作成しているアプリがアプリらしくなってきました。

Vアプリでブラウザ起動がうまくいかないのですが・・・・

BrowserConnection brs;
String url2 = "http://www.yahoo.co.jp";

try {
    brs = ( BrowserConnection ) Connector.open(url2);
    brs.connect();
    brs.close();
  } catch (Exception e) {}


jadファイルはMIDlet-Network: Y 以外に必要なものとかありますかね?

なんかお気づきの点がありましたらお願いします。


973 :デフォルトの名無しさん:04/08/24 15:18
>>972
String url2 = "http://www.yahoo.co.jp";
じゃなくて
String url2 = "url://www.yahoo.co.jp";
でやってみ。


974 :デフォルトの名無しさん:04/08/24 15:40
>>973

ありがとうございます!
いけました。

975 :デフォルトの名無しさん:04/08/25 15:37
vodafoneのVSCLのSDKをダウンロードしてデモアプリを動作できた方は
いらっしゃいますか?


976 :デフォルトの名無しさん:04/08/25 19:54
記憶では全部動作したと思うけど、どうかされました?

977 :デフォルトの名無しさん:04/08/27 03:56
Vアプリ用のプロジェクト構築すんのめんどいねー。
eclipse用のプラグイン使っちゃえば簡単なんだけどさー、Eclipse重すぎて使う気になれないよ。

bin、src、class、buildなどのフォルダとbuild.xmlやマニフェスト、JADファイルを自動生成してくれる無料の軽快なツールないかなぁ。
これさえクリアすればあとはbuild.xmlをantに渡してやるだけなんだけど・・・・。

978 :デフォルトの名無しさん:04/08/27 07:56
>977
マニフェストなんてそんなに変更ないんじゃないかい?
JADは(大雑把に言えば)それにJARのサイズくっつけるだけだから
15分もあれば自動生成スクリプト書けるっしょ。(Javaで書けば
antのjavaタスクにできるけど、結局VMもう一個立ち上がるしなぁ)
フォルダ生成もantのタスクで可能なはずだし、
一回思い切って時間割いてbuild.xml書いてしまえば後々楽だぞい。

# 確かV用のbuild.xmlのテンプレどっかで公開してたな……
# 場所忘れたが。漏れはそれをあう用に手直しして使ってた。

979 :デフォルトの名無しさん:04/08/27 08:15
>>978
そのV用のbuild.xmlはあるんだけど、それを使う前に
各種のフォルダ作成やマニフェストファイルを作成しなきゃいけなかったから、
プロジェクトごとにそんな下ごしらえをやるのはメンドイなーと思って。

15分で生成スクリプトが書けるなんて凄すぎだぜ。オレはまだまだ初級だなぁorz

とりあえずantの勉強から始めます。

980 :デフォルトの名無しさん:04/08/27 08:59
>>978
>Javaで書けばantのjavaタスクにできるけど、結局VMもう一個立ち上がるしなぁ
どうせjavaで書くならantのタスクを書けばいいのに。
うちはサイズ取得はそうやってる。

981 :デフォルトの名無しさん:04/08/27 10:36
forkしなけりゃいいだけじゃん。

982 :デフォルトの名無しさん:04/08/27 12:06
unixわかんねー

983 :978:04/08/27 23:23
>980
それはすごい。漏れはantタスク作れる技量がないんでOTL

>981
なーんも考えずに書いたらforkせんと動かない代物を作ってしまったので
マンドクセから諦めてforkさせてまつ。

984 :デフォルトの名無しさん:04/08/28 07:01
Vアプリのサンプルコードの中に、JADのサイズ更新Ant Taskがあったよ。

271 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)