【Java】float型からint型に変換する

switch文などの条件分岐で変数を条件に指定する時など、
int型に型を変更する必要がある場合がある。

小数点以下を含む数字「浮動小数点数型」float型を、
小数点以下を含まない数字「整数型」int型に変換してみる。

■float型からint型に変換する方法■

【FloatInt.java】

public class FloatInt {

	public static void main(String[] args){
		// float型→int型
		float aaa=(float)3.14;
		float bbb=(float)-3.14;
		int ccc=(int)aaa;
		int ddd=(int)bbb;
		// 出力
		System.out.println(ccc);
		System.out.println(ddd);
	}
}

出力結果

3
-3

int型は整数型なので、小数点以下は切り捨てされる

【Android】onFlingでフリック時の移動距離を取得する

onFlingでフリック時の移動距離を取得する場合、
velocityY,velocityXで取得することができる。

■フリック長さ取得サンプル■

【FlingTest.java】

public class FlingTest extends Activity {
	
	private TextView textView_x;
	private TextView textView_y;
	// 縦横フリック値トータル
	float x_total = 0;
	float y_total = 0;

	private GestureDetector mGestureDetector;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		mGestureDetector = new GestureDetector(this, mOnGestureListener);
		textView_x = (TextView)findViewById(R.id.textView1);
		textView_y = (TextView)findViewById(R.id.textView2);
    }

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		return mGestureDetector.onTouchEvent(event);
	}

	private final SimpleOnGestureListener mOnGestureListener = new SimpleOnGestureListener() {
		@Override
		public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        	
			// velocityでフリックの距離を取得
			float xxx = x_total - velocityX;
			float yyy = y_total - velocityY;
			x_total = xxx;
			y_total = yyy;
			// textViewで表示
			textView_x.setText( "横フリック値: " + x_total );
			textView_y.setText( "縦フリック値: " + y_total );
			return true;
		}
	};
}

一応、レイアウトファイルも、
【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:id="@+id/textView1"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="TextView" />
	<TextView
		android:id="@+id/textView2"
		android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:text="TextView" />
</LinearLayout>

onflingでフリック距離を取得

【HTML/CSS】tableの横幅を指定してもレイアウトが広がってしまう時の対応方法

table(テーブルタグ)に限らず、ブロック要素タグ内で、
スペースを含まない半角英数字が連続して含まれる文字列を使った場合、
文字列全体を英単語や数字と認識して、文字列が途中で折り返されない為、テーブルが横に広がってしまう。
こういった問題の対応方法

テーブル横幅が広がる

【元ソースコード】

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="content-style-type" content="text/css">
<title>title</title>
<style>
td{
	width: 100px;
	height: 40px;
	background: #777777;
	border: 1px solid #000000;
}
</style>
</head>
<body>
<table>
	<tr>
		<td class="box"><a href="#">ああああああああああ</a></td>
		<td class="box"><a href="#">aaaaaaaaaaaaaaaaaaaa</a></td>
		<td class="box"><a href="#">ああああああああああ</a></td>
		<td class="box"><a href="#">aaaaaaaaaaaaaaaaaaaa</a></td>
	</tr>
</table>
</body>
</html>

IEのみであれば下記のコードを追加すれば解決する

/*IEのみ*/
word-wrap: break-word;

現状のブラウザではこの問題を解決する方法はないので、
レイアウト重視の場合、tableの横幅を固定する事で対応する。

具体的にはtableタグのthやtdに横幅を指定。
その中の文字列にも横幅を指定する。
文字列に横幅を指定しても半角英数字は改行してくれないので、
overflow:hiddenで指定横幅以上は表示しないという方法で対応する。

テーブル横幅固定

【改ソースコード】

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="content-style-type" content="text/css">
<title>tableの横幅を固定</title>
<style>
td{
	width: 100px;
	height: 40px;
	background: #777777;
	border: 1px solid #000000;
	word-wrap: break-word; /*IEのみ*/
}
td.box a{
	display: block;
	width: 100px;
	overflow:hidden;
}
</style>
</head>
<body>
<table>
	<tr>
		<td class="box"><a href="#">ああああああああああ</a></td>
		<td class="box"><a href="#">aaaaaaaaaaaaaaaaaaaa</a></td>
		<td class="box"><a href="#">ああああああああああ</a></td>
		<td class="box"><a href="#">aaaaaaaaaaaaaaaaaaaa</a></td>
	</tr>
</table>
</body>
</html>

aタグ、spanタグなどインライン要素を使った時は、display: block;を忘れずに!!

【Android】プロジェクトに新規Activity(アクティビティ)を追加する

アプリケーションでは複数の画面を使用する場合が多々ある。
そういった場合、新規で画面(Activity)を新規で追加する必要がある。
EclipseでAndroidプロジェクトに新規Activity(アクティビティ)を追加してみる。

手順としては、
STEP1、新規Activity(javaクラスファイル)を作成する
STEP2、マニフェストファイルに新規Activityを追加する

■STEP1 新規Activity(javaクラスファイル)を作成する
まず最初にパッケージ内に新規Activity(javaクラスファイル)を作成する。
Eclipse画面左のパッケージ欄でActivityを追加したいプロジェクトの[src]→[パッケージ名]の上で右クリックし、
表示されたメニューの中から[新規]→[クラス]をクリックする。

新規Activity追加

「新規Javaクラス」ウィンドウが表示されたら、
新規Activityの名前を「名前」欄に入力する。(今回はActivity001とした)
「修飾子」は任意のものを選択。(今回は初期状態のまま「public」でOK)

新規Activityの名前

「スーパークラス」は初期状態で「java.lang.Object」と入力されています。
今回はActivityクラスを継承したクラスを作成する為「android.app.Activity」と入力する。

スーパークラス入力「android.app.Activity」

入力が完了したら画面下の「完了」ボタンをクリック。
パッケージ内に新規Activityファイルが作成された事が確認できる。

新規Activityクラスファイル生成

新規Activityファイルには自動的にソースコードが作成されている。

package jp.sonkhon.androidtestapp.android;

import android.app.Activity;
	
public class Activity001 extends Activity {

}

Activityが呼び出された時に、確認用テキストが表示されるようにソースコードを追加する。

package jp.sonkhon.androidtestapp.android;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Activity001 extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		TextView tv = new TextView(this);
		tv.setText("Activity001");
		setContentView(tv);
	}
}

■STEP2 マニフェストファイルに新規Activityを追加する
Activityを追加したらマニフェストファイルに追加したActivityを記述する必要がある
まず、Eclipse画面左のパッケージ欄からAndroidManifest.xmlを開く

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="jp.sonkhon.androidtestapp.android"
	android:versionCode="1"
	android:versionName="1.0" >

	<uses-sdk android:minSdkVersion="15" />

	<application
		android:icon="@drawable/ic_launcher"
		android:label="@string/app_name" >
		<activity
			android:label="@string/app_name"
			android:name=".AndroidTestAppActivity" >
			<intent-filter >
				<action android:name="android.intent.action.MAIN" />

				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
	</application>

</manifest>

新規作成したActivityを追加する為、application要素の中にactivity要素を追加する。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="jp.sonkhon.androidtestapp.android"
	android:versionCode="1"
	android:versionName="1.0" >

	<uses-sdk android:minSdkVersion="15" />

	<application
		android:icon="@drawable/ic_launcher"
		android:label="@string/app_name" >
		<activity
			android:label="@string/app_name"
			android:name=".AndroidTestAppActivity" >
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />

				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
		<!-- この部分を追記 -->
		<activity
			android:label="@string/app_name"
			android:name=".Activity001">
		</activity>
		<!-- ここまで -->
	</application>

</manifest>

これで完了!!
アプリケーションが起動した時に最初に呼び出されるActivityが「AndroidTestAppActivity」になっているので、
今回新規作成したActivityを確認したい場合は、intent-filterタグをまるごと「Activity001」にもってきて、
最初に起動されるActivityを「Activity001」に変更することでも確認できる。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="jp.sonkhon.androidtestapp.android"
	android:versionCode="1"
	android:versionName="1.0" >

	<uses-sdk android:minSdkVersion="15" />

	<application
		android:icon="@drawable/ic_launcher"
		android:label="@string/app_name" >
		<activity
			android:label="@string/app_name"
			android:name=".AndroidTestAppActivity" >
		</activity>
		<activity
			android:label="@string/app_name"
			android:name=".Activity001">
			<!-- この部分をごっそり移動 -->
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />

				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
			<!-- ここまで -->
		</activity>
	</application>

</manifest>

android実機確認

【Android】Eclipseで新規プロジェクトを作成する

EclipseでAndroidアプリの新規プロジェクトを作ってみる。

Eclipseではプログラムを作るにあたって、まずプロジェクトを新規で作成する必要がある。
その新規で作成したプロジェクトの中にプログラムや画像など、関連するものすべてを入れて管理する。

今回は「アンドロイドのテストアプリ」という事で、
「AndroidTestApp」というプロジェクト名のプロジェクトを作ってみる。

Eclipseを起動したら[ファイル]メニュー→[新規]→[プロジェクト]をクリックする。

Android新規プロジェクト作成

「新規Androidプロジェクト」ウィンドウが表示されたら、
[Android]ディレクトリをドリルダウンさせ、中にある[Androidプロジェクト]を選択して[次へ]をクリック。

新規Androidプロジェクト

次の画面で「プロジェクト名」にプロジェクト名(今回は「AndroidTestApp」)を入力する。
入力が完了したら[次へ]をクリック。

プロジェクト名入力

次の画面では「ビルド・ターゲット」を選択する。
ビルド・ターゲットは現時点で最新のAndroid4.0.3を選択する。
(最新のバージョンを選択した理由は、広告のSDKが古いバージョンに対応していなかった為、
あとでAndroidManifest.xmlのAPIレベルを変えてあげれば古いバージョンの環境にも対応できる)
入力が完了したら[次へ]をクリック。

ビルド・ターゲット選択

最後に、アプリケーションの情報を入力する。
「アプリケーション名」は任意のものでOK
「パッケージ名」も任意でOKですが、プログラムの配布を考える時、そのプログラムで宣言されているパッケージ名が他のプログラムのパッケージ名と重複すると問題が起こる為、重複しないネーミングにする。
入力が完了したら[完了]をクリック。

パッケージ名入力

これで新規プロジェクトの作成は完了!!
Eclipseの画面左側の[パッケージ]欄に新しく作成したプロジェクトが追加されたことが確認できる。

プロジェクト追加確認