- [Vue.js]時計?タイムコードを表示するWebアプリ
- (2021/11/16)
- ポエム
- (2020/09/30)
- メトロノームアプリをリリース
- (2017/04/22)
- Sikulix勉強中:便利関数
- (2017/02/25)
- [JavaFX]学習メモ
- (2016/09/22)
しかし、このダイアログのせいでイベントリスナーがActivityにたくさん追加されていくのです。
この中ではJSONStringerを作って、writeToを呼んで、文字列生成している。
633 @Override public String toString() {
634 try {
635 JSONStringer stringer = new JSONStringer();
636 writeTo(stringer);
637 return stringer.toString();
638 } catch (JSONException e) {
639 return null;
640 }
641 }
writeTo()では、JSONStringerに登録されたキーと値をオブジェクトとして登録している。これなら、自分でも書けそう。
664 void writeTo(JSONStringer stringer) throws JSONException {
665 stringer.object();
666 for (Map.Entry<String, Object> entry : nameValuePairs.entrySet()) {
667 stringer.key(entry.getKey()).value(entry.getValue());
668 }
669 stringer.endObject();
670 }
JSONArray#toString()
実にJSONObjectと同一。writeToを呼び、文字列生成している。
writeTo()では、JSONStringerに登録された値を配列として登録している。これも自分でできそう。
569 void writeTo(JSONStringer stringer) throws JSONException {
570 stringer.array();
571 for (Object value : values) {
572 stringer.value(value);
573 }
574 stringer.endArray();
575 }
ここから検索して調べました。便利。
Androidソースコード検索サービス
http://tools.oesf.biz/android-2.2_r1.1/
追記:
ただし、JSONStringerは「ほとんどのアプリケーション開発者は無視すべき」とされているクラスなので、別の方法を取ったほうがよい。
http://developer.android.com/intl/ja/reference/org/json/JSONStringer.html
OpenCVをPC向けソフトウェアで使ったことがあるのですが、Android向けのポーティングが公式に出ていることがわかったので試してみました。そのメモ。
パッケージはここからダウンロード
http://sourceforge.net/projects/opencvlibrary/files/opencv-android/2.3.1/
インストール
パッケージにはOpenCVディレクトリとsampleディレクトリがあります。どちらもまとめてEclipseのワークスペースに放り込んでおけば使えます。$(workspace)/OpenCV-2.3.1/とでも。このフォルダはEclipseプロジェクトの形式になっていて、Eclipseからインポートして使います。
サンプルを試す
sampleディレクトリを$(workspace)/opencv-sample/と適当にリネームして、Eclipseからインポート。ビルドエラーが出ていたので、原因を見て解決しておきます。(今回はプロジェクトのプロパティにあるOpenCVライブラリディレクトリのパスが一階層ずれていて、../../OpenCV-2.3.1から../OpenCV-2.3.1に直しました。配置がまずかったかな。)
あとは実行>Androidアプリケーションです。apkファイルが6MB程度なので、インストールにも時間がかかる。サンプルが動作します。15パズルは、カメラの歪みのせいで、カメラを動かすと15マスが微妙に動かした方向と別の動きをして気持ち悪い感じでした…。
参考ページ
パスで表現される図形を、任意の直線で2つに分割するというものです。
たとえば↓
http://d.hatena.ne.jp/nomuyoguruto/20090730
その要領で、OpenGLの頂点配列で表される図形F(四角形と五角形)を、任意の直線(またはFの辺上にある任意の二点)で分割したいのですが、そんな操作はOpenGLで提供されてません。検索しても同じ事をしている人を見つけられませんでした。私は何か間違ったことをやろうとしてるのかも。。。(直感的で便利な操作だと思うのだけど)
なければ作るしかない。あたまがわるいので、場合わけしてswitchでごにょごにょするしか思いつきません。これじゃぁ五角形のときに分岐が10個に。複雑度測りたくありません。
Androidアプリでボタンの使用可能・不可能を設定するためのコード片。「ボタンを押したら、押したボタンを使用不可能にする」場合、ボタンのハイライト状態がそのままになってしまいます。onClickイベントの処理内でsetEnable(false)しているのがよくないので、Handlerでタイミングをずらしてます。
ボタンの使用可能・不可能を設定するハンドラ
private Handler setEnableHandler = new Handler() { public void handleMessage(Message msg) { View v = (View) msg.obj; v.setEnabled(msg.arg1 == 1); } };
ハンドラを呼び出す
msg = new Message(); msg.arg1 = 0; msg.obj = btn; setEnableHandler.sendMessage(msg);
SyntaxHighlighterを初めて使った。どきどき。