|ハイブリッドOS|File System|ARM|Android|Java|制御システム|オープンシステム

 

Android

 
フォーム
 
振動機(バイブレーター)を使用する。
2013-08-19
振動機(バイブレーター)を使用するにはVibratorクラスを使用します。
振動させるパターンは2つあり、1つは指定した時間振動させるパターンともう一つは指定した振動パターンを指定した回数繰り返すパターンがあります。

■サンプルソース
○AndroidManifest.xml
users-permissionに"android.permission.VIBRATE"を追加します。

 
package="jp.co.newral.sample.vibrator"
android:versionCode="1"
android:versionName="1.0" >

 
android:minSdkVersion="8"
android:targetSdkVersion="8" />

 
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
 
android:name="jp.co.newral.sample.vibrator.MainActivity"
android:label="@string/app_name" >

 
 
 

 

 
 
○res/layout/acitvity_main.xml
振動させるボタンpattern1Button, pattern2Buttonを追加します。

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

 
android:id="@+id/pattern1Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="パターン1" />

 
android:id="@+id/pattern2Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/pattern1Button"
android:layout_alignBottom="@+id/pattern1Button"
android:layout_toRightOf="@+id/pattern1Button"
android:text="パターン2" />

 

 
○src/jp.co.newral.sample.vibrator/MainActivity.java
package jp.co.newral.sample.vibrator;

import android.app.Activity;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/**
* 振動機(バイブレーター)を使用するサンプル
*
*/
public class MainActivity extends Activity implements OnClickListener {

/**
* 振動パターン
* 要素1:振動待ち時間(ms)
* 要素2:振動時間(ms)
* 要素3,4以降:要素1,2同様
*/
private static final long[] PATTERN = {1000, 1500, 2000, 2500, 3000, 3500};

/** 振動機(バイブレーター) */
private Vibrator mVibrator;

/**
* 生成された時に呼び出される。
*
* @param savedInstanceState 保存した時のインスタンスの状態
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// スーパークラスのメソッドを呼び出す。
super.onCreate(savedInstanceState);

// レイアウトを設定する。
setContentView(R.layout.activity_main);

// 振動機(バイブレーター)を取得する。
mVibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);

// 各ボタンのクリックリスナーを設定する。
((Button)findViewById(R.id.pattern1Button)).setOnClickListener(MainActivity.this);
((Button)findViewById(R.id.pattern2Button)).setOnClickListener(MainActivity.this);
}

/**
* ボタンがクリックされた時に呼び出される。
*
* @param v クリックされたボタン
*/
@Override
public void onClick(View v) {
// ボタンIDを取得する。
int id = v.getId();

// ボタンIDにより処理を判別する。
switch (id){
// パターン1ボタンの場合
case R.id.pattern1Button:
// 振動パターンで振動させる。
// 第2引数は繰り返し回数
// -1の場合は繰り返さない。
mVibrator.vibrate(PATTERN, -1);
break;

// パターン2ボタンの場合
case R.id.pattern2Button:
// 指定した時間(ms)振動させる。
mVibrator.vibrate(5000);
break;

// 上記以外
default:
// 何もしない。
break;
}
 
Homeキー押下でアプリを終了する。
2013-08-15
AndroidManifest.xmlで、Homeキー押下でfinish()させたいActivityに
 android:finishOnCloseSystemDialogs="true" 
を設定します。
 
バックライトを常時ONにする。
2013-08-12
バックライトを常時ONにするには以下を実行します。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

バックライトの消灯を許可するには以下を実行します。
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
 
ラジオボタンを使用する。
2013-08-09
ラジオボタンを使用するにはRadioGroupクラス、RadioButtonkクラスを使用します。

■サンプルソース
res/layout/activity_main.xml
RadioGroupを追加します。
その中にRadioButtonを追加し、idにそれぞれ"radio_a0", "radio_a1", "radio_a2", "radio_b0", "radio_b1", "radio_b2"を設定します。

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    
        android:id="@+id/radioGroup0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" >

        
            android:id="@+id/radio_a0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="RadioButtonA0" />

        
            android:id="@+id/radio_a1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButtonA1" />

        
            android:id="@+id/radio_a2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButtonA2" />
   

    
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/radioGroup0"
        android:layout_centerHorizontal="true" >

        
            android:id="@+id/radio_b0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="RadioButtonB0" />

        
            android:id="@+id/radio_b1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButtonB1" />

        
            android:id="@+id/radio_b2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RadioButtonB2" />
   
 
 
 
○src/jp.co.newral.sample.radiobutton/MainActivity.java

package jp.co.newral.sample.radiobutton;

import android.os.Bundle;
import android.app.Activity;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // チェックされた時のリスナーを設定します。
        ((RadioGroup)findViewById(R.id.radioGroup0)).setOnCheckedChangeListener(new RadioGroupOnCheckedChangeListener());
        ((RadioGroup)findViewById(R.id.radioGroup1)).setOnCheckedChangeListener(new RadioGroupOnCheckedChangeListener());
    }

    /**
     * ラジオボタンがチェックされた時に呼び出されます。
     *
     */
    private class RadioGroupOnCheckedChangeListener implements OnCheckedChangeListener {

        /**
         * チェックされた時に呼び出されます。
         *
         * @param group ラジオボタングループ
         * @param checkedId チェックされたラジオボタンのID
         */
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // チェックされたラジオボタンの名前をトースト表示します。
            RadioButton radio = (RadioButton)findViewById(checkedId);
            String text = radio.getText().toString() + " checked.";
            Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
        }
    }
}
 
チェックボックスを使用する。
2013-08-08
チェックボックスを使用するにはCheckBoxクラスを使用します。

■サンプルソース
○res/layout/activity_main.xml
CheckBoxを追加し、idに"checkBox1"を設定します。

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

 
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CheckBox" />

 

○src/jp.co.newral.sample.checkbox/MainActivity.java

package jp.co.newral.sample.checkbox;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// チェックボックスがクリックされた時のリスナーを設定します。
((CheckBox)findViewById(R.id.checkBox1)).setOnClickListener(new OnClickListener() {

/**
* クリックされた時に呼び出される。
*
* @param v クリックされたチェックボックス
*/
@Override
public void onClick(View v) {
// チェックの有無をトースト表示します。
String text;
if (((CheckBox)v).isChecked()) {
text = "Checked.";
} else {
text = "Not checked.";
}

Toast.makeText(MainActivity.this, text, Toast.LENGTH_SHORT).show();
}
});
}
}