futabooo blog

色々手をつけすぎてすぐに忘れるので備忘録

AndroidにおけるXMLでのカラーコード

透過率を付ける方法をググってたら分かった内容のメモ。

基本的にカラーコードは16進数の6桁をつかう。
例えば以下のサイトではHTMLなんかで使いたい色を調べるときに重宝する。

WEB色見本
http://www.colordic.org/


こいつのあたま二桁(#のあと)に16進数で値を追加することで透過率を表すことができる。
例えば#00000000なんてやると真っ黒。でもこれを#ff000000なんてやるとなんもでない。はず。

透過率は頭2桁。
コレが重要。
調べてる時どの部分が透過率なのか把握するのに地味に時間がかかった。

SDカードの動画ファイル一覧を取得。選択したファイルを再生。。。できない\(^o^)/

うーん。

package com.futabooo.testapp;

import java.io.File;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Environment;
import android.widget.Toast;
import android.widget.VideoView;

public class MainActivity extends Activity{

    //動画ファイルのあるディレクトリ
    String Path = Environment.getExternalStorageDirectory().getPath() + "/" + "external_sd/test_animation/";
    String fileName = null;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        showFileName(getFileNameList(Path));
        
        VideoView videoView = (VideoView) findViewById(R.id.surface);
        videoView.setVideoPath(Path + fileName);
        videoView.start();
    }
    
    //選択ボックスで表示するファイル名のリストを作成
    public String[] getFileNameList (String str) {
        File dir = new File(str);
        final File[] files = dir.listFiles();
        final String[] str_items;
        str_items = new String[files.length];
        for (int i = 0; i < files.length; i++) {
            File file = files[i];
            str_items[i] = file.getName();
        }
        return str_items;
    }
    
    //ファイルの選択ボックスを表示
    public void showFileName (String[] str_items){
        final String[] files = str_items;
        new AlertDialog.Builder(getApplicationContext())
            .setTitle("ファイルを選択")
            .setItems(str_items, new DialogInterface.OnClickListener(){
                public void onClick(DialogInterface dialog, int which) {
                    if (which < files.length){
                        fileName = files[which];
                        Toast.makeText(MainActivity.this, 
                                "ファイルパス:「" + fileName + "」を選択しました。", 
                                Toast.LENGTH_LONG).show();
                    }
                }
            }).show();
    }
}

MacでGalaxyS2が認識してくれなかった時の解決策

レアなケースだと思います。
僕の場合認識してくれなかったのは、EasyTetherというAndroidのテザリングアプリを使ってUSB接続した経験があったからでした。
こちらのブログを見ていて分かりました。
http://d.hatena.ne.jp/PAD_min/20110825/p1


解決策は以下のフォルダをまるっと削除です。
/System/Library/Extensions/EasyTetherUSBEthernet.kext


これで認識してくれるようになりました。

初めてのAndroidプログラミング備忘録(3)

前回書いてたやつを全部完成させた。
でもうまくいってない。

画像の赤丸の部分に隙間ができてしまうんですよね。

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

	<TextView
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginTop="5dp"
		android:layout_marginBottom="5dp"
		android:text="お申し込みフォーム"
		android:textAppearance="?android:attr/textAppearanceLarge"  />

	<LinearLayout
	    xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="70sp"
			    android:layout_height="wrap_content"
			    android:text="お名前:"/>
			<EditText
			    android:id="@+id/namae"
			    android:layout_width="200sp"
			    android:layout_height="wrap_content"/>
	</LinearLayout>

	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="70sp"
			    android:layout_height="wrap_content"
			    android:text="住所:"/>
			<EditText
			    android:id="@+id/jyuusho"
			    android:layout_width="200sp"
			    android:layout_height="wrap_content"/>
	</LinearLayout>

	<LinearLayout
	    xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="70sp"
			    android:layout_height="wrap_content"
			    android:text="生年月日:"/>
			<Spinner
			    android:id="@+id/seinengappi_tuki"
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:entries="@array/tuki" />
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="月"/>
			<Spinner
			    android:id="@+id/seinengappi_nichi"
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:entries="@array/nichi" />
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="日"/>
	</LinearLayout>

	<LinearLayout
	    xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="70sp"
			    android:layout_height="wrap_content"
			    android:layout_marginTop="10dp"
			    android:text="性別:"/>
			<RadioGroup
				android:layout_width="match_parent"
				android:layout_height="wrap_content"
				android:orientation="horizontal">
					<RadioButton
					    android:id="@+id/male"
					    android:layout_width="wrap_content"
					    android:layout_height="wrap_content"
					    android:text="男" />
					<RadioButton
					    android:id="@+id/female"
					    android:layout_width="wrap_content"
					    android:layout_height="wrap_content"
					    android:text="女" />
			</RadioGroup>
	</LinearLayout>

	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="50sp"
		android:layout_marginRight="50sp"
		android:background="#003399"
		android:orientation="horizontal" >
		<TextView
		    android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:paddingRight="100sp"
			android:text="希望商品"/>
		<TextView
			android:layout_width="wrap_content"
			android:layout_height="wrap_content"
			android:text="注文数量"/>
	</LinearLayout>

	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="50sp"
		android:layout_marginRight="50sp"
		android:orientation="horizontal" >
		<CheckBox
		    android:id="@+id/ringo"
		    android:layout_width="100dp"
		    android:layout_height="wrap_content"
		    android:layout_marginRight="70sp"
		    android:text="りんご" />
		<EditText
		    android:id="@+id/ringokazu"
		    android:layout_width="40dp"
		    android:layout_height="wrap_content" />
	</LinearLayout>>

	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="50sp"
		android:layout_marginRight="50sp"
		android:orientation="horizontal" >
		<CheckBox
		    android:id="@+id/mikan"
		    android:layout_width="100dp"
		    android:layout_height="wrap_content"
		    android:layout_marginRight="70sp"
		    android:text="みかん" />
		<EditText
		    android:id="@+id/mikankazu"
		    android:layout_width="40dp"
		    android:layout_height="wrap_content" />
	</LinearLayout>>

	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginLeft="50sp"
		android:layout_marginRight="50sp"
		android:orientation="horizontal" >
		<CheckBox
		    android:id="@+id/momo"
		    android:layout_width="100dp"
		    android:layout_height="wrap_content"
		    android:layout_marginRight="70sp"
		    android:text="もも" />
		<EditText
		    android:id="@+id/momokazu"
		    android:layout_width="40dp"
		    android:layout_height="wrap_content" />
	</LinearLayout>>

	<Button
	    android:id="@+id/soushin"
	    android:layout_gravity="center_horizontal"
	    android:layout_width="150dp"
	    android:layout_height="wrap_content"
	    android:text="送信" />
</LinearLayout>

f:id:futabooo:20120124121653p:image

初めてのAndroidプログラミング備忘録(2)

何記事か書くようになってこのタグの付け方はありなのか?わかりづらくないか?
と思い始めてきたfutaboooですこんにちは!

今日も先日に引き続きLayoutとViewに格闘していました。
今日わかったことはlayout_widthの値に"wrap_content"を定義すると、EditTextクラスの時にどう動くのかってこと。

今日書いたのがエミュレータの表示だとこんな感じ。ここの一つ目のテキストボックスに入力したら。1個したの画像みたいになった。
f:id:futabooo:20120119174440p:image
f:id:futabooo:20120119174439p:image


コード全体はこれ。更に下の方に問題の部分だけ抜き出したもの。

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

	<TextView
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:layout_marginTop="5dp"
		android:layout_marginBottom="5dp"
		android:text="お申し込みフォーム"
		android:textAppearance="?android:attr/textAppearanceLarge"  />

	<LinearLayout
	    xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="お名前:"/>
			<EditText
			    android:id="@+id/namae"
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"/>
	</LinearLayout>

	<LinearLayout
		xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="住所:"/>
			<EditText
			    android:id="@+id/jyuusho"
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"/>
	</LinearLayout>

	<LinearLayout
	    xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="生年月日:"/>
			<Spinner
			    android:id="@+id/seinengappi_tuki"
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:entries="@array/tuki" />
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="月"/>
			<Spinner
			    android:id="@+id/seinengappi_nichi"
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:entries="@array/nichi" />
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="日"/>
	</LinearLayout>

	<LinearLayout
	    xmlns:android="http://schemas.android.com/apk/res/android"
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="horizontal">
			<TextView
			    android:layout_width="wrap_content"
			    android:layout_height="wrap_content"
			    android:text="性別:"/>
			<RadioGroup
				android:layout_width="match_parent"
				android:layout_height="wrap_content"
				android:orientation="vertical">
					<RadioButton
					    android:id="@+id/male"
					    android:layout_width="wrap_content"
					    android:layout_height="wrap_content"
					    android:text="男" />
					<RadioButton
					    android:id="@+id/female"
					    android:layout_width="wrap_content"
					    android:layout_height="wrap_content"
					    android:text="女" />
			</RadioGroup>
	</LinearLayout>
</LinearLayout>


問題の部分だけ抜き出すとこれ。

<EditText
    android:id="@+id/namae"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

"wrap_content"を任意の値にすればいいだね!

これってXMLファイルだからJAVAってタグじゃないんじゃないか?(´・ω・`)
ブログの文書の書き方が定まらない。。。

AndroidのViewを色々試してみた

Viewを色々試してみた。
XMLファイルへの記述がこれ。

<?xml version="1.0" encoding="utf-8"?>
<!-- 画面全体のスクロールバーの定義 -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<!-- レイアウトの定義 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

<!-- TextView(テキスト)の定義 -->
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp"
    android:text="@string/textviewsample1" />

<!-- EditText(テキストボックス)の定義 -->
<EditText android:id="@+id/edittext1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

<!-- CheckBox(チェックボックス)の定義 -->
<CheckBox android:id="@+id/checkcox1"
    android:paddingBottom="24sp"
    android:paddingTop="24sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/checkboxsample1" />

<CheckBox android:id="@+id/checkbox2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/checkboxsample2" />

<!-- RadioButton(ラジオボタン)の定義 -->
<RadioGroup
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <RadioButton android:id="@+id/radiobutton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/radiobuttonsample1" />

    <RadioButton android:id="@+id/radiobutton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/radiobuttonsample2" />
</RadioGroup>

<!-- Spinner(選択ボックス)の定義 -->
<Spinner android:id="@+id/spinner1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:entries="@array/list_name"
    android:drawSelectorOnTop="true" />

<!-- ListView(リスト一覧)の定義 -->
<ListView android:id="@+id/listView1"
    android:paddingBottom="24sp"
    android:paddingTop="24sp"
    android:layout_width="fill_parent"
    android:layout_height="250dp"
    android:entries="@array/list_name" />

<!-- Button(ボタン)の定義 -->
<Button android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/buttonsample1" />

</LinearLayout>
</ScrollView>


エミュレータの表示がこれ
f:id:futabooo:20120117150809p:image


valuesフォルダのstrings.xmlにtextの内容を別途ちゃんと記述してないとエラーが出るのでちょっと困った。

Eclipseでデバッグが思うような反応をしてくれなくて困った時の解決方法

デバッグの方法を勉強していたらなんかエミュレータにこんな表示がされた。
f:id:futabooo:20120117121930p:image

結論から言うと、タスクマネージャーからadb.exeのプロセスを終了してEclipseの再起動で直った。

この解決に至るまでに2時間もかかったよ!
というのも、エラー文を最初にググればよかったのだけども、今勉強に使ってる本と同じ表示が出てこなくて、
そっち色々調べてたら時間かかりました。

その画面がこれ。(デバッグEclipseの虫のアイコン)をクリックするとEclipseの画面はこんな風になる。)
f:id:futabooo:20120117122431p:image


この画面もEclipseの再起動ででたけど、その時の詳細な手順をメモ。


デバッグのエラー出る
   ↓
Eclipse終了する
   ↓
タスクマネージャーからadb.exeを終了する
   ↓
Eclipse起動する
   ↓
Eclipseのメニューバーから、ウィンドウ>ビューの表示>その他>Android>Logcat>OK
Android開発の場合このLogcatってのにログが出力されていく)
   ↓
デバッグしたいパッケージ選択してデバッグ
   ↓
やったね!!


ほんとにこんなんでいいんだろうか。
ひとまずこれで動いたのでよしとしますか。