創造工学設計I 5回目(7/5/2015)

創造工学設計I
電子情報工学科4年(前期)
10回目
(25/6/2015)
担当 古山彰一
([email protected])
Chap8_1_1とChap8_1_3には
エラーがあります。
修正してください。
※ Chap8_1_1は簡単です。
Chap8_1_3はChap8_1_6のプログラムがヒントになるかも?
クリックされた回数をカウントするアプリ
textView :
id: @+id/textView
Text: ボタンをタップした回数を数えます
package jp.ac.nc_toyama.chap8_1_1;
import
import
import
import
import
android.support.v7.app.ActionBarActivity;
android.os.Bundle;
android.view.View;
android.widget.Button;
android.widget.TextView;
public class MainActivity extends ActionBarActivity {
private int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((Button) findViewById(R.id.button)).setOnClickListener(
new View.OnClickListener(){
public void onClick(View view){
((TextView) findViewById(R.id.textView))
.setText(String.format(“%d times”,++i));
}
});
}
}
Button:
id: @+id/button1
Text: Please tap!
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${packageName}.${activityClass}">
<TextView android:text="ボタンをタップした回数を数えます。"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Please tap!"
android:id="@+id/button1"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true" />
</RelativeLayout>
ボタンにアニメーションをさせる
package jp.ac.nc_toyama.chap8_1_3;
import
import
import
import
import
import
android.support.v7.app.ActionBarActivity;
android.os.Bundle;
android.view.View;
android.view.animation.CycleInterpolator;
android.view.animation.ScaleAnimation;
android.widget.Button;
public class MainActivity extends ActionBarActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button
Id: @+id/button
Text: START!
//
((Button) findViewById(R.id.button))
.setOnClickListener(new View.onClickListener(){
//
@Override
public void onClick(View view){
ScaleAnimation scale = new ScaleAnimation(
0.5f,
10.0f,
0.5f,
10.0f,
view.getWidth()/2,
view.getHeight()/2
);
//
scale.setDuration(1000);
//
scale.setInterpolator(new
CycleInterpolator(0.5f));
//
view.startAnimation(scale);
}
});
}
}
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${packageName}.${activityClass}"
android:id="@+id/">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="START!"
android:id="@+id/button"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
トーストに現在時刻を表示する
package jp.ac.nc_toyama.chap8_1_6;
import
import
import
import
import
android.support.v7.app.ActionBarActivity;
android.os.Bundle;
android.view.View;
android.widget.Button;
android.widget.Toast;
Button
Id: @+id/button
Text: 日付と時刻
を表示します
import java.text.SimpleDateFormat;
import java.util.Date;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((Button) findViewById(R.id.button))
.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
//
SimpleDateFormat sdfFormat =
new SimpleDateFormat("yyyy.MM.dd '/' a hh:mm:ss");
//
Date dateTime = new Date();
//
Toast tstToast = Toast.makeText(
getApplicationContext(), sdfFormat.format(dateTime),
Toast.LENGTH_LONG);
tstToast.show();
}
});
}
}
<RelativeLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="日付と時刻を表示します"
android:id="@+id/button"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
課題について
課題1: 以下の表ではイベントリスナーとコールバックメソッドを表にしたものだが、内容の部分を記入しなさい。
課題2: Chap8_1_3の中で、
setInterpolator()メソッドを用いている
が、その引数に指定できるオブジェク
トとして右表のようなものがある。説明
をしなさい。また、実際にプログラムに
挿入して動作を確認しなさい。
クラス名
AccelerateInterpolator
DecelerateInterpolator
AccelerateDecelerateInterpolator
AnticipateInterpolator
AnticipateOvershootInterpolator
BounceInterpolator
CycleInterpolator
LinearInterpolator
OvershuootInterpolator
説明
課題3: 本日作成した3つのプログラムの方法を応用して、自分なりのアプリを作成しなさい。
• 課題1~3をpdfファイルにしてメールで提出しなさい。
• 締切 本日中(23:59まで)
• 提出先 [email protected]
• 課題ファイル名 10i4??.pdf (??は二桁の出席番号)