Java

jsonのparse

jsで JSON.stringify({host:"shokai.org", port:8080}) すると "{"host":"shokai.org","port":8080}" になる これをJavaで import org.json.JSONObject; JSONObject json = new JSONObject(data); json.getString("host"); json.getInt("port"); parseできる

JavaのThread

Thereadをそのまま使うか、implements Runnableかextends Threadするかの3通りがある。 public class ThreadTest{ private class CountThread implements Runnable{ private int count; public CountThread(int count){ this.count = count; } public void r…

JavaのSocketとThread

試行錯誤の残骸。 テキストで行区切りで受信する毎に受信イベントが発生する イベントはlistenerで登録する 送信もMainスレッドと別で回せる Runnable interfaceに関数を詰めて渡せるのは便利だった ClientSample.java import java.io.*; import java.net.So…

viewにある全てのボタンを操作する

画面上にあるボタンを全て取得して、全部onClickListenerに登録したい。refrectionを使って、R.id.の中身のstatic fieldsを全て取得して、一つずつfindViewByIdした。 import java.lang.reflect.*; なおthisがimplements OnClickListenerされている。 public…

加速度センサーを使う

参考:http://www.adakoda.com/android/000182.html AndroidManifest.xmlにpermissionを書く必要は無い SDK9向けに書いた package org.shokai; import java.util.List; import android.app.Activity; import android.hardware.Sensor; import android.hardwa…

Nexus SのNFCでFelicaのIDを読む

http://code.google.com/p/guava-libraries/ から guava-r09.jar を手に入れて、Androidプロジェクトにlibsディレクトリを作ってその中に入れる。 プロジェクトのbuild pathにguava-r09.jarを追加する。 AndroidManifest.xmlにpermissionを書いておく <uses-permission android:name="android.permission.NFC" /> </uses-permission>

カメラプレビューのサイズ

cam = Camera.open(); Camera.Parameters cam_params = cam.getParameters(); List<Size> prev_sizes = cam_params.getSupportedPreviewSizes(); for(Size s : prev_sizes){ Log.v("CameraTest", s.height + "," +s.width); } HTC Desireの場合、これ以外を指定す</size>…

Java1.6を使う

普通にMac OSXのアップデートをインストールしていれば1.6が入っているが、pathが通っていなくて1.5が使われてる /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home にある .profile を編集 export JAVA_HOME=/System/Library/Frameworks/Java…

javax.iamgeioが遅いのか

http://d.hatena.ne.jp/shokai/20100629/1277804347 の続き 前のコードではjavaのBufferdImageがRubyのオブジェクトに毎回変換されている気がしたので int配列でwidth,heightだけを返すJava classを作ってJRubyのスクリプトから呼ぶ事にした。 Javaで配列で…

Java Advanced Imagingインストール、画像サイズ取得

JAI http://java.sun.com/javase/technologies/desktop/media/jai/ https://jai.dev.java.net/binary-builds.html からバイナリを取得 wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib.zip unzip jai-1_1_3-lib.zip mv jai-1_1…

javax.imageioで使える画像フォーマット

ImageFormatNames.java import javax.imageio.ImageIO; class ImageFormatNames { public static void main(String[] args){ System.out.println("--read formats--"); for(String name : ImageIO.getReaderFormatNames()){ System.out.println(name); } Sys…

メーラを起動する

参考 http://snipt.net/Martin/android-intent-usage/ 宛先、件名、本文を指定してメーラ起動。 mailto:のリンクを開くとメーラが起動する public void openMail(String title, String body, String to){ Uri uri=Uri.parse("mailto:"+to); Intent i=new Int…

画面スリープや他アプリへの切り替えイベント

ActivityのonPause, onResumeで取れる @Override public void onPause(){ super.onPause(); Log.v("test", "onPause"); } @Override public void onResume(){ super.onResume(); Log.v("test", "onResume"); } 電源ボタンを押して画面を切った時 ホームボタ…

MapViewで画面外に描画しないようにする

GPSログをHTC Desire上でGoogleMapsに描画するアプリを作っている。 http://shokai.org/blog/archives/5180 線を10000本とか表示したらスクロールがガクガクになった。1000本ぐらいでようやくギリギリ耐えられる程度の重さになる。 画面内に線が全くなくても…

リストダイアログ

八角研究所 : Android で再開する Java プログラミング(14) - ダイアログを制するものがAndroidを制する!Javaはまだ慣れないな。 リストダイアログからはクリックしたボタンのindexが取れる。これでファイル選択画面を作りたい どうやらスコープの関係で…

SDカード内のファイルの読み書き

http://d.hatena.ne.jp/shokai/20100601/1275418503 ではandroidのContext.openFileInput, Context.openFileOutputを使ったがSDカードを読み書きするにはjava.io.FileとFileInputStream, FileOutputStreamを使わなければならないらしい。 とりあえずAndroid2…

AlertDialogでファイル一覧から選択させて開く

この辺のサンプルでは、ダイアログをクリックさせて「何番目をクリックしたか」を取得しているけど、スコープの関係でファイルを開いてViewに表示する関数を呼ぶとかはできない。 八角研究所 : Android で再開する Java プログラミング(14) - ダイアログを…

テキストファイルの読み書き

openFileInput, openFileOutput, fileListを使う ファイルはどこにできているんだろう。 package org.shokai.test; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.*; import android.view.*…