低山部で飯森山 – 高地山 – 叶岳に行ってきた

低山部の第2回目。今回のメンバーは、@usam1111さん、@motooさん、@taromisakoさん、@yoheyoさんの5名。天神3丁目のバス停に集合。午前中にバスが1本しかないという追い詰められた状況で、予想通り遅刻する大人たち。なんとか全員そろったので出発。

飯盛神社から登山道に入る。ちょっと登ったあたりから副登山道にルート変更。いきなり険しい道になる。

飯盛山の頂上付近。縦走する2つ目の山、高地山を目指して進むメンバー。

部長代理の満足気な表情。まだ着いてないですから!

2つ目の山、高地山の頂上。今回の登山で一番標高が高いらしい。一斉にその看板にカメラを向ける。

頂上と言っても通り道って感じで、回りに木が生えてて景色とか全然見えない。素通りするレベル。

叶岳の頂上に到着。山頂には神社がありました。天気も良かったし、気温も暖かく最高に条件が整った登山でした。紅葉はまだだったけど、すごく気持ちよかった。途中のベンチでおにぎりを食べたり、Webしりとりしながら登ったり。

帰りは頂上にいたおじさんがしきりにオススメしてた道で下山。福岡の景色が一望できるらしい。そして今回最もテンションが上がったのが、この山道。写真じゃ分かりにくいけど、水の通り道でくり抜かれたように壁で囲まれた道。斜面も急だし、サバイバルな感じで楽しかった。足がハンパなく笑ってたけど。

中腹辺りまで降りてきたところ。ここだけちょっと開けてて、ロープとか使いながら降りていく。

福岡市内を一望。マリノアの観覧車とかドームとか見える。

下山後はゆの華で温泉。登山後の温泉は必須。その後16時過ぎから打ち上げのビール。時間が早かったのでざうおにて貸切状態。ビールうまし。

部長代理がアジ釣りに挑戦。そーっと釣竿をたらして・・・。

とったどー!お約束ですね。

多数決で〆のラーメンは長浜将軍に。替え玉して本日の登山終了ー。みなさまお疲れ様でした!そして参加できなかったbeelabさん、最高のプランニングありがとうございました!
■メンバーレポート
・【福岡低山部】stage2 ・飯盛山〜叶岳縦走コース
・低山部 「飯森山-高地山-叶岳編」
・低山部 Stage2: 飯森山~高地山~叶岳。
Androidでメニューを追加

デフォルトのUIを使うと、こんな感じ。カスタムのアイコンとかも簡単に使える。menu.add()の引数はグループID、アイテムID、並び順、ラベル番号になっているのでそれぞれ設定してやる。メニューのラベル番号はAndroid側で決められた中から選ぶとOS上で各国の言葉に対応してくれるみたい。menuItem1にだけクリックイベントを付けてみたので、タッチするとアラートでアイテムIDを表示してくれる。
MyMenu.java
package info.five.MyMenu;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MyMenu extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
super.onCreateOptionsMenu(menu);
//-----[メニューの作成]
MenuItem menuItem1 = menu.add(0, 0, 0, android.R.string.search_go);
MenuItem menuItem2 = menu.add(0, 1, 1, android.R.string.paste);
MenuItem menuItem3 = menu.add(0, 2, 2, android.R.string.yes);
//-----[クリックイベントの追加]
menuItem1.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
showDialog(item.getItemId());
return false;
}
});
//-----[アイコンの追加]
menuItem1.setIcon(android.R.drawable.ic_menu_search);
menuItem2.setIcon(android.R.drawable.ic_dialog_email);
menuItem3.setIcon(android.R.drawable.ic_dialog_info);
return true;
}
@Override
protected Dialog onCreateDialog(int id)
{
return new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("アラート")
.setMessage("アイテムID=" + id)
.create();
}
}
AndroidでXMLを読み込んでリスト表示

HTTP通信でxmlを読み込んで一覧表示。ブログのフィードを読み込ませてみる。パース自体はXmlPullParserが高速らしいけど、取得した後のパースが非常にめんどい。動作としてはループ内で上から順に全てのタグにアクセスして値を取得できるみたい。
■ループ内のeventTypeの種類
・XmlPullParser.START_DOCUMENT
・XmlPullParser.START_TAG
・XmlPullParser.TEXT
・XmlPullParser.END_TAG
・XmlPullParser.END_DOCUMENT
START_DOCUMENTとEND_DOCUMENTは1回ずつ呼ばれて、残りは開始タグ→値→終了タグの順番でループしていく。
AS3みたいに一発でぶっこ抜けないのかね。例えばitem要素が複数あって、その中にtitleとかdescriptionがある場合、構造をキープしたままパースしてUIに落としこむとかやりたいんだけど・・・。
Rss.java
package info.five.Rss;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Xml;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Rss extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//-----[xmlの取得先]
String uri = "http://www.5ive.info/blog/feed";
//-----[httpクライアントの設定]
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet();
try{
get.setURI(new URI(uri));
HttpResponse res = client.execute(get);
InputStream in = res.getEntity().getContent();
//-----[パーサーの設定]
XmlPullParser parser = Xml.newPullParser();
parser.setInput(in, "UTF-8");
//-----[アダプターの設定]
ArrayAdapter adapter;
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1);
int eventType = parser.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT)
{
switch(eventType)
{
case XmlPullParser.START_TAG:
String tag = parser.getName();
if("title".equals(tag))
{
//-----[深度が4のtitleだけ取得]
int depth = parser.getDepth();
if(depth == 4)
{
String txt = parser.nextText();
adapter.add(txt);
}
}
break;
}
eventType = parser.next();
}
//-----[リストビューにアダプターをセット]
ListView lv = (ListView)findViewById(R.id.ListView01);
lv.setAdapter(adapter);
}
catch (URISyntaxException e) {
e.printStackTrace();
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
catch (XmlPullParserException e) {
e.printStackTrace();
}
}
}
Androidで変数のキャスト
数値から文字列に型変換する
int num = 100; String str = String.valueOf(num);
文字列から数値に型変換する
String str = "100"; int num = Integer.parseInt(str);
コツコツと行くしかない。
AndroidでCanvasに描画

AS3のBitmapDataで描画するやり方のAndroid版。
Canvas.java
package info.five.Canvas;
import android.app.Activity;
import android.os.Bundle;
public class Canvas extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView mv = new MyView(getApplication());
setContentView(mv);
}
}
まずは起動クラスでカスタムビューを追加。描画はカスタムビューの中で行うことにする。ここではインスタンス化してaddChild()してるだけ。
MyView.java
package info.five.Canvas;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;;
public class MyView extends View {
public MyView (Context c) {
super(c);
setFocusable(true);
}
protected void onDraw (Canvas canvas) {
super.onDraw(canvas);
//-----[背景色の塗りつぶし]
canvas.drawColor(Color.DKGRAY);
//-----[円を描画]
Paint p = new Paint();
p.setStyle(Paint.Style.FILL);
p.setARGB(255, 255, 255, 255);
p.setAntiAlias(true);
canvas.drawCircle(100,100,100, p);
}
}
Viewクラスを継承したMyViewクラスを新たに作る。コンストラクタでフォーカスを渡してやる。これしないとViewがイベントを取得できないらしい。そして描画はonDraw()内での実行されるので背景を塗って、アンチエイリアスつきの円を描画。
AS3と感覚的には似てるので、API覚えればなんとなく行ける気がしてきた。
AndroidでHelloWorld

1.6の頃にちょっとかじった程度だったけど、ぼちぼちAndroidのお勉強を始めようかと。とりあえず2.2が動く実機を手に入れないとなー。まずはHelloWorldから。
HelloWorld.java
package info.five.HelloWorld;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello World!");
setContentView(tv);
}
}
AS3で言うとこのドキュメントクラスがSprite(もしくはMovieClip)を継承するのと同じで、起動クラスはActivityクラスを継承するのが基本になる。onCreate()がコンストラクタになるので、起動時に最初に呼ばれるメソッド。TextView()でテキストフィールドを作って文字を代入。setContentView()で画面に表示する。addChild()する感じかー。
一日だけのパンの店 nei

明日、薬院にあるギャラリー望雲にて出張パン屋が来るみたい。フライヤーには大牟田のカレーとパンの店「nei」さんの移動販売、と書いてある。幸せ味のパンを売ってるそうなので、散歩がてら買いに行ってみよ。
FlashDevelopでFlashPlayer10.1のコード補完に対応させる
久しぶりのFlashネタ。CS5のFlashは不安定なので、未だにCS3で制作してたんだけど、ぼちぼち移行しようかと。AIR for Android用のコードを書くときにFlashDevelopでコード補完できるように環境整備メモ。
まずFlex SDKのパスを通す。CS5がインストールされてる人は下記にあるはず。
C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.1.0
このパスをFlashDevelopのメニューで「ツール → 環境設定 → AS3Context → Flex SDK Location」に設定。
次にメニューから「プロジェクト → プロジェクト設定 → 書き出し → バージョン → Flash Player 10.1」に変更。
これでコード補完が効くようになる。新しいクラスのTouchEventとかMultitouchとかがインポートできるので、あとはゴリゴリAndroidアプリを開発したらいいかと。
低山部で三日月山 – 立花山に行ってきた

この本がきっかけで山登りしようぜ!を実現。福岡低山部の第1回目ということでurarakaさんとusam1111さん、_rhythm23さんの4人で立花山に行って来た。今回は練習試合的な意味で、軽く登れる山をチョイス。12時に集合して車で移動。三日月霊園前から登山開始。

正直ナメてました、この山を。往復で3時間半くらいだったんだけど、前半に調子に乗って直登ルート(急斜面)を登ったので一気に体力を削られる。その先からは全てなめらかコースにて頂上を目指しました。暑さもあったのかもだけど、バテてて途中あんまり喋ってません。

まずは三日月山の頂上に到着。今日は単焦点ではなくて広角レンズ持ってきてたので、景色がよく撮れる。軽く休憩して、目的地の立花山へ縦走。

無事に登頂しました。頂上ではみんなでオニギリを食べました。これぞ醍醐味!少し曇り気味だったけど、福岡の街が一望できて気持よかった。下山後、久山の温泉に行って汗を流す超健康的な休日の過ごし方。夜は平尾近辺で美味しくビールを頂きました。また行きましょうー!
■メンバーレポート
・低山部 -vol.1- 三日月山〜立花山
・低山部で立花山行った。
お盆に広島に行ってきた

毎日うだるような暑さに少々バテ気味。今年のお盆は久々に広島の実家にいちかを連れて家族3人で帰省。新幹線に乗ってる間もずっと寝てくれてたので無問題。生まれてから初めて帰るので、墓参りと親戚に娘の顔を見せに行く。

ばあちゃんに曾孫を見せに。抱っこしてもらえて良かったねー。

実家にて卵形のマラカスに異常に興味を示すいちか。両親も楽しそうに相手してくれてる。

広島のじいちゃんとばあちゃん家だよ。

帰省中ずっと機嫌が良かったなー。そして実家は田舎パワーで涼しかった。山の中はほんと気持ちいい。

2泊3日のお盆休み、ゆっくりさせて頂きました。
