今回はTextViewを使って、擬似的な「モグラたたき」っぽいアプリを作ってみたいと思います。
入力する行は少ないのですが、初めての命令が多いので、初心者の方は少々戸惑うかもしれません。
Java未経験の方は参考程度に抑えてください。
プロジェクト名
プロジェクト、カンパニードメイン、パッケージネームを同じにするとコピペエラーが減ります。
Application name CountGame
Company Domain test.com
Package name com.test.countgame
activity_main.xml (完成)
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" 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="com.test.countgame.MainActivity"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onTv" android:text="0" android:textSize="42sp" /> </RelativeLayout>
MainActivity.java(完成)
package com.test.countgame; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import java.util.Random; public class MainActivity extends AppCompatActivity { int count = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onTv(View v) { // カウントの加算 count++; ((TextView) findViewById(R.id.tv)).setText("" + count); // 表示位置の変更 int w = findViewById(R.id.activity_main).getWidth(); int w1 = (int) (w * 0.8); int w2 = new Random().nextInt(w1); ((TextView) findViewById(R.id.tv)).setTranslationX(w2); int h = findViewById(R.id.activity_main).getHeight(); int h1 = (int) (h * 0.8); int h2 = new Random().nextInt(h1); ((TextView) findViewById(R.id.tv)).setTranslationY(h2); } }