うみたんのアトリエ

Android開発とかメモっておきたいこと記録していくの。

【Androidアプリ】さくらじまくんアプリ【公開】

私の処女作アプリ「桜島くん」をアップデートしましたw

 

お絵かきはお手製です。

 

あなたのサイトのURL、そろそろスリムにしませんか?

【AppInventor】Colorブロック以外の色の指定方法

AppInventorの[Color]ブロックに存在しない色(Black, Blue, Cyan, Dark Gray, 

Gray, Green, Light  Gray, Magenta, Orange, Pink, Red, White, Yellow)以外を

指定したい場合の方法を記述します。

 

[Color]に存在しない色は、numberブロックで数値として指定できます。

色の数値は、「透明度」「赤」「緑」「青」の濃度を次の順序で

計算して求めます。それぞれ、0~255の256段階で濃さを指定します。

 

*1 × 256 + 128) × 256 + 64 ‐ 4,294,967,296 = -32,704

透明度     赤       緑       青

 

  1. 透明度を256倍して赤を加える
  2. ①を256倍して緑を加える
  3. ②を256倍して青を加える
  4. ③から4,294,967,296を引く

 

これがいわゆるRGB指定方式です。

*1:255 × 256 + 255

Tomcatを入れてみた。

現在の環境にTomcatを入れてみました。

EclipseJDKTomcatを入れてある前提です。

 

Tomcatのpluginを置いてあるサイトからダウンロードしてきます。

Eclipseは閉じた状態でおこなてください)

http://www.eclipsetotale.com/tomcatPlugin.html

tomcatPluginV33.zipのリンクをクリックします。

f:id:umitan0311:20130912215056p:plain

 

 

ダウンロードしたら、zipファイルを展開します。

展開したら、tomcatPluginV33フォルダの下に

「com.sysdeo.eclipse.tomcat_3.3.0」フォルダがあります。

これをコピーし、Eclipseのインストールフォルダ以下のpluginsフォルダの中に

格納します。

 

Eclipseを立ち上げます。

立ち上げると以下のようになります。

f:id:umitan0311:20130912215538p:plain

 

 

Eclipseを起動したら、メニューにTomcatのアイコンが出てきています。

f:id:umitan0311:20130912215850p:plain

 

Eclipseメニューバーから「ウィンドウ」- 「設定」にTomcatが増えています。

Tomcat」を選択して、TomcatのバージョンとTomcatホームを設定します。

私の環境はバージョン6で行います。

f:id:umitan0311:20130912220342p:plain

 

「OK」ボタンを押せば設定完了です。

 

これで自分のPCにWebサーバをたてることができました。

 

PhoneGapの導入とYappli(ヤプリ)

PhoneGap(フォンギャップ)の存在を知った。

ひとまず、サイトから最新版のツールをダウンロードして

Eclipseに取り込んでHelloWorldを表示してみました。

 

PhoneGapはHTML5JavaScriptとCCS3を実装することで

AndroidiOSのアプリを作ることが出来るもの。

 

PhoneGap

http://phonegap-fan.com/

 

ただJavaScriptで動かすので出来ないことが多いと思う。

単純なアプリになら適しているかも?

 

あと、Yahooも簡単にアプリを作れるツールを提供しはじめたようです。

10日間無料でその後は月9,800円~。

 

Yappli(ヤプリ)

http://yapp.li/

 

こういうのどんどん増えてきたなぁ。

個人がつかうにはもったいないね。

 

やっぱEclipseJavaで実装が一番っしょ。

 

 

getBooleanExtra()

new Intent()でboolean型もgetBooleanExtra()で渡すことが可能です。

取り出し方:

Intent intent = getIntent();

boolean boo = intent.getBooleanExtra("KEY", false);

 

第一引数にgetBooleanExtraで指定したKey名、

第二引数にはデフォルトでセットしたい値(falseかtrue)

 

第二引数が存在する理由は値が渡せなかったときの対応と思われます。

HRタグのような区切り線を入れる方法

HTMLのHRタグの区切り線を入れるとき、
以下のようにレイアウトxmlに定義する。

android:id="@+id/hr"
android:layout_width="fill_parent"
android:layout_height="1dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:gravity="fill_horizontal"
android:scaleType="fitXY"
android:src="@android:drawable/divider_horizontal_textfield" />

android:srcの@android:drawableに指定する値が4つある。

  • divider_horizontal_textfield

背景が白のときにおすすめ。

  • divider_horizontal_bright

背景が黒のとき(白以外なら)おすすめ。

  • divider_horizontal_dark

背景が黒のとき(白以外なら)おすすめ。

  • divider_horizontal_dim_dark

背景が黒のとき(白以外なら)おすすめ。


以下のサイトが分かりやすいです。
http://www.taosoftware.co.jp/blog/2009/03/android_22.html

【番外編】うみたんのアトリエ公開

私のアトリエです。
f:id:umitan0311:20130908114036j:plain

簡単なファイルの読み込み方法

Android開発におけるcsvファイルやtextファイルの読み込みを行う
メソッドを作りました。

先ほどの書き込み処理も利用しています。

ArrayList> bookmarks = new ArrayList>();

/**
* ファイルの読み込みを行う。
*/
private void readData() {
AssetManager assetManager = getResources().getAssets();

String fileList = null;
InputStream is = null;
BufferedReader br = null;

try {
// assets\csvフォルダの中のファイルリスト
fileList = assetManager.list("csv");
// ファイルが一つもなければ作成
if(fileList.length == 0){
List list = new ArrayList();
list.add("1,データ1");
list.add("2,データ2");
writeFile("test.csv", list);

// 読み込み処理省略
}

for (String file : fileList) {
is = assetManager.open("csv/" + file);
br = new BufferedReader(new InputStreamReader(is));
String str;
while ((str = br.readLine()) != null) {
String strs = str.split(",");
HashMap data = new HashMap();
data.put("name", strs[0]);
data.put("url", strs[1]);
bookmarks.add(data);

}
}
} catch (IOException e) {
Toast.makeText(this, "読み込み失敗", Toast.LENGTH_SHORT).show();
} finally {
// 終了処理
try {
if (br != null) {
br.close();
}
if (is != null) {
is.close();
}
} catch (Exception e) {
Toast.makeText(this, "Close処理失敗", Toast.LENGTH_SHORT).show();
}
}

}

素敵!

ファイルの生成および書き込み

Android開発におけるファイルの生成および書き込みについて、
以下のメソッドを作りました。

/**
* 任意のファイル名でファイルを生成し、
* 任意の文字列を書き込む。
*
* @param fileName ファイル名
* @param data 書き込むデータ
*/
private void writeFile(String fileName, List data) {
// ファイルパスの生成
String path = Environment.getExternalStorageDirectory().getPath();
String filePath = path + File.separator + fileName;
File file = new File(filePath);
// ファイルがあるかないか
if (!file.isFile()) {
// ない場合はmkdirで生成
file.getParentFile().mkdir();
}

FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter bw = null;
try {
fos = new FileOutputStream(file, true);
osw = new OutputStreamWriter(fos, "UTF-8");
bw = new BufferedWriter(osw);
// 書き込む内容
// デフォルト値を設定する
for (String st : data) {
// 書き込み
bw.write(st);
}
bw.flush();

} catch (IOException e) {
Toast.makeText(this, "書き込み失敗", Toast.LENGTH_SHORT).show();
} finally {
// 終了処理
try {
// Close処理
if (bw != null) {
bw.close();
}
if (osw != null) {
osw.close();
}
if (fos != null) {
fos.close();
}
} catch (IOException e) {
Toast.makeText(this, "Close処理失敗", Toast.LENGTH_SHORT).show();
}
}

R.javaが生成されない時の対処法

Androidプロジェクトを作った後に
R.javaが生成されないエラーの対処法をまとめます。

以下を確認してください。

  • パッケージ名とAndroidManifest.xmlのmanifestタグのpackage名は同じか?

 違う場合は、manifestを変更するか、パッケージ名をリネームして合わせる。
 プロジェクト - クリーンを実行して、再ビルドを行う。

 これで、R.javaが更新され解決するはずです。