honeycomb2012年02月01日 20:40

honeycomb
honeycomb


ハニカム登場!。

といっても、開発環境の仮想端末である。しかし、かっこいいなあ。このインターフェースの方が、ICSよりも、タブレットに特化していてそれらしく見える。

今日は、このAVDを作って、ハロータブレットを表示させて、さらにはボタンなるものを画面上で押して動作させるところまでいった。

(Androidタブレットアプリ開発入門)
http://thinkit.co.jp/story/2011/11/24/2339?page=0,0

去年の11月の記事なので、それほど古くはない。9月には3.2.1も出ている(SDKは7月15日)。この連載では、3.1を使用している。堅実なところか。

いやあ、しかし、仮想端末の遅いこと!。画面が大きいので仕方ないが、固まらないだけ有難いと思わなくてはならないだろう。

今日は、ユーチューブのダウンロードソフト(チューブメイト)のアップグレードもした。こっちも、いたちごっこ状態になっている。

初ボタン!2012年02月01日 21:28

初ボタン!
初ボタン!


3.1で、ボタンを押すとメッセージが出て、「OK」を押すと消えるプログラムを、コピペする。例によって、エラーメッセージを消すべく、加工してようやく動くようになった。

コピペ流も板についてくる。

面白いもので、初めは訳も分からずにコピペするだけなのだが(殆ど解説は読まない。動きゃいいじゃん!?)、おんなじコードを読んで(眺めて)いると、だんだん分かるようになってくる。

レイアウトも、こんなもんかという感じ。例によって、.javaとmain.xmlだけ、コピペしておく。

</HelloTablet/src/sample/hellotablet/HelloTabletActivity.java>

package sample.hellotablet;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;

public class HelloTabletActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// button1をクリックした時に処理を実行できるようにする
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

// button1をクリックした際の処理を記述する
// ここではAlertDialogを作成し、ダイアログに表示するメッセージの設定と、
// ダイアログのOKボタンを押した時にダイアログが閉じる処理を記述している
new AlertDialog.Builder(HelloTabletActivity.this).
setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).setMessage("ボタンを押しました").show();
}
});
}
}

</HelloTablet/res/layout/main.xml>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />

</LinearLayout>

アラートダイアログを表示して、OKボタンで消えるようになっている。なるほどね(と、分かったようなフリをする)。

レイアウトに「match_parent」ではなく、「fill_parent」を使っているのを見ると、ははーん、だいぶ昔からコードを書いてるな、などと、クセを見抜いてしまったりする(偉っそうに・・・)。

(縦または横一列に要素を並べるリニアレイアウト)
http://android.keicode.com/basics/ui-linearlayout.php

コードが読めるようになると、例題が、如何に手抜きしているかが分かってくる(というより、うまいコードになっている)。もう少し経つと、自分のコードが書けるようになるかもしれない。

それまでは、コピペ流だ!。

コピペ電卓2012年02月02日 01:30

コピペ電卓
コピペ電卓

ハニカム仮想環境で格闘していたのだが、エラーが消えずに断念(アバンダン:やめる、諦める、断念する・・・)。

で、気を取り直して、先日挫折した電卓アプリに再挑戦。今度はなんとかモノにした。どうも、インポートの手順が良くないようだ。何度かトライして、ようやくバグが消える。

エクリプスのクセなのか、やり方がまずいのか。ちなみに、前のバージョンのヘリオスを使っている。

で、ようやく実機にインストールした電卓である。

ちょっと、感動だが、そろそろコードを読まないと充実感が得られなくなってきた。いい傾向ではあるが、「読めない」とストレスが溜まりそうで怖い。

タブレットと比較して、画面が小さく、実装も楽なのでいい。ハニカムの開発本があるようなので、手に入れようと思う。

Androidタブレットアプリ開発ガイド Android SDK 3対応 (Smart Mobile Developer)
http://www.amazon.co.jp/gp/product/4798124192/ref=as_li_ss_tl?ie=UTF8&tag=firespeedkenz-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4798124192#_

フラグメントのところでつまずいている。このあたりになると、コピペ流の限界も見えてくる。英語のリファレンスを読んでも良く分からない。基礎知識の無さを痛感する。

この電卓は、キーを押すと振動が出るようなプログラムなのだが、実際使ってみると、かえって鬱陶しい。改良して、振動の有る無しを切り替えられるようにするか、止めてしまうか(こっちが簡単そうだな)しないと落ち着かない。

コピペでも、ソースがいじれると、こんなことも考えられるので楽しいのだ。

瞬速改良!2012年02月02日 01:52

ハニカムのホーム画面
ハニカムのホーム画面


電卓の振動を消すのにかかった時間はたったの5分。開発本の追加機能のところをいじって、コメントアウトしただけ。

最初は、マニュフェストでバイブレーターの許可だけ消したのだが、途中でスタックしてしまった。そりゃそうだ。で、該当する箇所を見つけてコメントアウト。

うまくいくときは、こんなもんだ。

本体を傾けたときに、画面が回転してしまわないような仕掛けもマニュフェストのスクリーンオリエンテーションの設定だけでOK(所要時間、3分)。

画面は、ハニカムのホーム画面(仮想端末ですが)。ちょっといい感じ。こういうオトナのデザインがいいなあ。

ハニカム開発本2012年02月02日 21:13

ハニカム開発本
ハニカム開発本


日本語で読める唯一のハニカム開発本。

その名も、「Androidタブレットアプリ」。直球です、真っ直ぐです、飾り気なんてありません。javaの基本的な文法については、書かれていません(あっても読まんけど)。

351ページ3444円(税込み)の本である。1ページ10円かあ!。大切に読まなくっちゃね(そういう価値観?)。

まあ、どうせ拾い読みしながらコピペネタを探すことになるんだろうな。

ところで、泥8にハマっている「テディくま」さんが、復活の兆しである。拍手とショートコメントを送った。さあ、だんだんと人事ではなくなってくる。

(テディくまさんのページ)
http://blog.livedoor.jp/wingkei2002/

今日は、夕べの夜ふかしの影響で眠気が凄まじい。寝る。