【Java】文字列を指定ミリ秒ごとに1文字ずつ出力する

ゲームの会話シーンのようにテキストを1文字ずつ表示したい。

文字列を配列に入れて1文字ずつ出力する。
Thread.sleep()を利用して、指定ミリ秒ごとに出力する。
今回は1秒ごとに出力してみる。

public class ArrayTextPutTest {

	public static void main(String[] args) {
		
		String abc = "文字列を1文字ずつ出力するテスト";
		
		// 文字列を配列に1文字ずつセット
		char data[] = abc.toCharArray();
		
		// 配列数を取得
        int arr_num = data.length;
        
		for (int i = 0; i <= arr_num-1; i++) {
			
			try{
				// 指定ミリ秒の間眠る
				Thread.sleep(100); 
			}
			catch(InterruptedException e){
			}
			
			System.out.print(data[i]);
		}
	}
}

【出力結果】

文字列を1文字ずつ出力するテスト

Thread.sleep()のパラメータを変えれば、出力時間をミリ秒単位でコントロールできるよ!!

【JavaScript】innerWidthで画面(ウィンドウサイズ)を取得する

画面(ウィンドウサイズ)を取得する方法。
今回はスマホ用に調べたので、ChromeとSafariとFireFoxが対象。

//ウィンドウ内側の幅を得る
window.innerWidth

【innerWidth使用例】

<script type="text/javascript">
	// ウィンドウ内側の横幅サイズを取得して出力
	document.write(window.innerWidth); 
</script> 

【出力結果】

1920

IEではwindow.innerWidthの定義が異なるので注意!!

ついでにウィンドウサイズを変えた時に、リアルタイムに値が確認できるように出力する。
ウィンドウサイズが変更されたときに発生するイベントハンドラonresizeを使用する。

【innerWidth使用例(リアルタイム出力)】

<!-- ここに変化した横幅サイズを出力 -->
<span id="put_size_w"></span>

<script tyle="text/javascript">
	// ウィンドウ横幅サイズを出力する関数
	function getWindowWidth(){
		var size_w;
		size_w = window.innerWidth;
		
		// 指定idタグ内に値を出力
		document.getElementById("put_size_w").innerHTML = size_w;
	}
	
	//読み込み時に横幅サイズを表示
	getWindowWidth();
	
	//ウィンドウサイズ変更時に横幅サイズを更新
	window.onresize = getWindowWidth;
</script>

innerwidth使用例

<span id=”put_size_w”></span>の中に値が出力されるよ!!

さらにサービスで、横幅の値によって処理をかえるスクリプト
ウィンドウサイズが変更されたときに発生するイベントハンドラonresizeの中で条件分岐する。

【innerWidth使用例(条件分岐用)】

<script type="text/javascript">
	// ウィンドウ横幅サイズを取得する関数
	function getWindowWidth(){
		var size_w;
		size_w = window.innerWidth;
		return size_w;
	}
	
	// onresizeで横幅サイズが変わった時のイベント
	window.onresize = function() {
		var size_w = getWindowWidth();
		document.getElementById("win_size").innerHTML = size_w;
		if(size_w < 700){
			// 横幅が700以上の時の処理
	
		}else{
			// 横幅が700以下の時の処理
	
		}
	}
</script>

window.onresizeを使ってウィンドウサイズが変わった時のイベントを設定できるよ!!

【Android】CountDownTimerを利用してカウントダウン処理

CountDownTimerを利用してカウントダウン処理をしてみる。

Javaで準備されたクラスjava.util.Timerを利用する手もあるが、
Androidで準備されているandroid.os.CountDownTimerを利用する。

今回は、10からスタートし、1秒ごとに1ずつカウントダウンし、
0になったらタイムオーバーと表示する仕様とする。

// 第1引数で開始秒を指定し、一定時間ごと(第2引数)に減算していく。
CountDownTimer(開始ミリ秒,減算ミリ秒)
// インターバル毎に呼ばれる
onTick()	
// カウントダウン終了後に呼ばれる
onFinish()	

onTick()で毎秒の処理、onFinish()でカウントダウン終了後の処理を指定する。

【Activity001.java】

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

		// 10秒カウントダウンする
		new CountDownTimer(10000,1000){
			TextView count_txt = (TextView)findViewById(R.id.textView1);
			// カウントダウン処理
			public void onTick(long millisUntilFinished){
				count_txt.setText("カウントダウン"+millisUntilFinished/1000);
			}
			// カウントが0になった時の処理
			public void onFinish(){
				count_txt.setText("タイムオーバー");
			}
		}.start();
	}
}

一応、レイアウトxmlファイル
【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" />
</LinearLayout>

【実行結果】
カウントダウンタイマー

【Android】一定時間後(数秒後)に別のIntentに切り替える

Activity起動後にロゴなどの画像を表示させて、
数秒後にタイトル画面に切り替わるアプリケーションをよく見かける。

このような技法をSplash(スプラッシュ)というらしい。

このSplashを利用して、一旦画像などを表示して、一定時間後(数秒後)に別のIntentを表示したい。

今回は2秒後にHandlerを実行するという仕様にする。

public class Activity001 extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
 
		Handler hdl = new Handler();
		// 第2引数で切り替わる秒数(ミリ秒)を指定、今回は2秒
		hdl.postDelayed(new splashHandler(), 2000);
	}
	// splashHandlerクラス
	class splashHandler implements Runnable {
		public void run() {
			Intent intent = new Intent(Activity001.this, Activity002.class);
			startActivity(intent);
			Activity001.this.finish();
		}
	}
}

【PHP】物理パスの取得方法

物理パスを取得してみる

php物理パス

■物理パスの取得例
【test/test.php】

<?php
// ドキュメントルートのパス
echo "<br /><br />■ドキュメントルートのパス<br />";
echo $_SERVER['DOCUMENT_ROOT'];

// ディレクトリパス
echo "<br /><br />■自分のパス<br />";
echo realpath(dirname( __FILE__));

// 絶対パス
echo "<br /><br />■絶対パス<br />";
echo $_SERVER['SCRIPT_FILENAME'];

?>

【出力】

■ドキュメントルートのパス
/home/*******/ore-memo.com/public_html

■自分のパス
/home/*******/ore-memo.com/public_html/test

■絶対パス
/home/*******/ore-memo.com/public_html/test/test.php

【Android】戻るボタンで戻れないアクティビティ(Activity)作成方法

Androidアプリで画面を移動した後に、前の画面に戻られると都合が悪い場合がある。
今回は、戻るボタンで戻れないアクティビティ(Activity)を作成してみる。

Intentで別の画面を起動した後に元画面をfinish()して終了することにより、
戻るボタンで戻れないようにする。

元画面:Activity01.java
別起動画面:Activity02.java

【例】

// 別画面を起動
Intent intent = new Intent(Activity01.this, Activity02.class);
startActivity(intent);

// 画面移動後アクティビティ消去
finish();

Intentで別の画面を起動後も、元画面は生きているのでfinish()で終了してあげる。