ubuntu 0
3DCG 0
全32件 (32件中 1-32件目)
1
以下は、そのまま動きますありがたく利用させてもらいます。コードで記述のURL↓動く参考サイト Androidアプリで“アニメーション”するための基礎知識【中古】 基礎から学ぶAndroidアプリ開発 /渡邊昌之【著】 【中古】afb【中古】 Google Androidアプリ開発ガイド /柳井政和【著】 【中古】afb【中古】 10日でおぼえるAndroidアプリ開発入門教室 第2版 Android SDK4/3/2対応 10日でおぼえるシリーズ/寺園聖文【著】 【中古】afb【中古】 Google Android アプリ開発ガイド /柳井政和【著】 【中古】afb
2021.02.25
コメント(0)
Toastはボ~っと文字が現れて消えます。package com.example.buttontest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private TextView textView; private boolean buttonTap = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = findViewById(R.id.button); textView = findViewById(R.id.text_view); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (buttonTap) { textView.setText("あなたは"); Toast.makeText(MainActivity.this, "かしこい", Toast.LENGTH_LONG).show(); buttonTap = false; } else { textView.setText("私は"); Toast.makeText(MainActivity.this, "あほです", Toast.LENGTH_LONG).show(); buttonTap = true; } } }); }}【すぐに使えるクーポン有!2点で50円、5点で300円引き】改訂2版 基礎から学ぶAndroidアプリ開発 【中古】【中古】 基礎から学ぶAndroidアプリ開発 /渡邊昌之【著】 【中古】afb【中古】 10日でおぼえるAndroidアプリ開発入門教室 第2版 Android SDK4/3/2対応 10日でおぼえるシリーズ/寺園聖文【著】 【中古】afb【すぐに使えるクーポン有!2点で50円、5点で300円引き】よくわかる 挫折しない Android開発の入門書 (日経BPパソコンベストムック) 日経ソフトウエア【中古】【すぐに使えるクーポン有!2点で50円、5点で300円引き】よくわかるAndroidアプリ開発の教科書 Android 4.2対応版 【中古】
2021.02.19
コメント(0)
@overrideがあるメソッドはクラスに隠れた既存のメソッドです。onCreate onStart onResume onStopがその例です参考ボタン Activityのライフサイクル Activityのライフサイクル 。【すぐに使えるクーポン有!2点で50円、5点で300円引き】ほんきで学ぶAndroidアプリ開発入門 Android Studio、Android SDK 5対応 【中古】【中古】 Android Studioではじめる Androidアプリ開発の教科書 Android Studio1.3対応 /松岡謙治(著者) 【中古】afb【中古】 Android Studioではじめる 簡単Androidアプリ開発 /有山圭二(著者) 【中古】afb【中古】サブカルチャー ≪コンピュータ≫ TECHNICAL MASTER はじめてのAndroidアプリ開発 第2版 Android Studio 2対応 / 山田祥寛 【中古】afb【中古】 はじめよう Android Studioでアプリ開発 /深瀬欽正(著者) 【中古】afb【中古】 基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.X対応 プロが本気で教えるアプリ作りの基本「技」 Informa 【中古】afb【中古】 これ1冊でできる!Android Studioアプリ開発入門 Android Studio 2.1対応 /清水美樹(著者) 【中古】afb
2021.02.18
コメント(0)
グリッドレイアウト このレイアウトは比較的 自由度が高い activity_main.xml <?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.gridlayout.widget.GridLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_column="0" app:layout_row="0" /> <Button android:id="@+id/button6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_column="0" app:layout_row="1" /> <Button android:id="@+id/button7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_column="0" app:layout_row="2" /> <Button android:id="@+id/button8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_column="0" app:layout_row="3" /> <com.google.android.material.textfield.TextInputLayout android:layout_width="321dp" android:layout_height="wrap_content" app:layout_column="1" app:layout_row="0"> <com.google.android.material.textfield.TextInputEditText android:layout_width="220dp" android:layout_height="wrap_content" android:hint="hint" /> </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.textfield.TextInputLayout android:layout_width="307dp" android:layout_height="wrap_content" app:layout_column="1" app:layout_row="1"> <com.google.android.material.textfield.TextInputEditText android:layout_width="223dp" android:layout_height="wrap_content" android:hint="hint" /> </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.textfield.TextInputLayout android:layout_width="218dp" android:layout_height="wrap_content" app:layout_column="1" app:layout_row="2"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="hint" /> </com.google.android.material.textfield.TextInputLayout> <com.google.android.material.textfield.TextInputLayout android:layout_width="214dp" android:layout_height="wrap_content" app:layout_column="1" app:layout_row="3"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="hint" /> </com.google.android.material.textfield.TextInputLayout> </androidx.gridlayout.widget.GridLayout></androidx.constraintlayout.widget.ConstraintLayout> <?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.gridlayout.widget.GridLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_column="0" app:layout_row="0" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" app:layout_column="0" app:layout_row="1" /> <com.google.android.material.textfield.TextInputLayout android:layout_width="294dp" android:layout_height="wrap_content" app:layout_column="1" app:layout_row="0"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="hint" /> </com.google.android.material.textfield.TextInputLayout> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" app:layout_column="0" app:layout_row="2" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" app:layout_column="0" app:layout_row="3" /> <com.google.android.material.textfield.TextInputLayout android:layout_width="279dp" android:layout_height="wrap_content" app:layout_column="1" app:layout_row="2"> <com.google.android.material.textfield.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="hint" /> </com.google.android.material.textfield.TextInputLayout> </androidx.gridlayout.widget.GridLayout></androidx.constraintlayout.widget.ConstraintLayout>
2021.02.09
コメント(0)
レイアウトを変更LinearLayoutの入れ子です。activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#F6DFDF" > <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/labelList"> </TextView> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnCreateDumy" android:text="データ追加"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="全データ" android:id="@+id/buttonQuery"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="消去" android:id="@+id/buttonClear"> </Button> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="日時は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText2" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="記事は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView10" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText10" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="日時検索" android:id="@+id/buttonRowQuery"> </Button> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="検索日時は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView3" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText3" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="記事検索" android:id="@+id/buttonRowQuery2"> </Button> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="検索記事は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView11" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText11" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> </LinearLayout></LinearLayout>tipsレイアウトの参考記事Android Studio】レイアウト( Layout )の種類を覚えよう!
2021.02.07
コメント(0)
Android データベースのデータを読み込む(Select) を利用させてもらいました。 最初に登録済全データ表示 次にキーワードマッチで検索 [nd]というキーワードが存在すれば表示 xmlのレイアウトは使いやすい ように改造してください。 MainActivity.java package com.example.selectsqlite;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity { private OnClickListener buttonCreateDumy_OnClickListener = new OnClickListener(){ public void onClick(View v) {buttonCreateDumyData_OnClick(v);}}; private OnClickListener buttonDateSearch_OnClickListener = new OnClickListener(){ public void onClick(View v) {buttonDateSearch_OnClick(v);}}; private OnClickListener buttonKIJISearch_OnClickListener2 = new OnClickListener(){ public void onClick(View v) {buttonKIJISearch_OnClick2(v);}}; private OnClickListener buttonQuery_OnClickListener = new OnClickListener(){ public void onClick(View v) {buttonQuery_OnClick(v);}}; private OnClickListener buttonClear_OnClickListener = new OnClickListener(){ public void onClick(View v) {buttonClear_OnClick(v);}}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Button btnCreateDumy = (Button)this.findViewById(R.id.btnCreateDumy); btnCreateDumy.setOnClickListener(buttonCreateDumy_OnClickListener); Button btnDateSearch = (Button)this.findViewById(R.id.buttonRowQuery); Button btnKIJISearch2 = (Button)this.findViewById(R.id.buttonRowQuery2); btnDateSearch.setOnClickListener(buttonDateSearch_OnClickListener); btnKIJISearch2.setOnClickListener(buttonKIJISearch_OnClickListener2); Button btnQuery = (Button)this.findViewById(R.id.buttonQuery); btnQuery.setOnClickListener(buttonQuery_OnClickListener); Button btnClear = (Button)this.findViewById(R.id.buttonClear); btnClear.setOnClickListener(buttonClear_OnClickListener); } private void buttonCreateDumyData_OnClick(View v){ DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getWritableDatabase(); EditText inputText2 = (EditText) findViewById(R.id.inputText2); String inputStr2 = inputText2.getText().toString(); EditText inputText10 = (EditText) findViewById(R.id.inputText10); String inputStr10 = inputText10.getText().toString(); try{ ContentValues values = new ContentValues(); values.put("Date", inputStr2); values.put("Kiji", inputStr10); values.put("Hhmm", 0727); db.insert("MyTable", null, values); values.clear(); }finally{ db.close(); } } private void buttonDateSearch_OnClick(View v){ EditText inputText3 = (EditText) findViewById(R.id.inputText3); String inputStr3 = inputText3.getText().toString(); System.out.print(inputStr3); StringBuilder sql = new StringBuilder(); sql.append(" SELECT"); sql.append(" *"); sql.append(" FROM"); sql.append(" MyTable"); sql.append(" WHERE"); sql.append(" Date"); sql.append(" ="); sql.append(" "+ "\""+inputStr3+"\"" + " ;"); //sql.append(" "+ "\"a\"" + " ;"); DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getReadableDatabase(); try{ Cursor cursor = db.rawQuery(sql.toString(), null); StringBuilder text = new StringBuilder(); while (cursor.moveToNext()){ text.append(cursor.getInt(0)); text.append("," + cursor.getString(1)); text.append("," + cursor.getString(2)); text.append("," + cursor.getString(3)); text.append("\n"); } TextView lblList = (TextView)this.findViewById(R.id.labelList); lblList.setText(text); }finally{ db.close(); } } private void buttonKIJISearch_OnClick2(View v){ //select * from user where address = 'Tokyo'; EditText inputText11 = (EditText) findViewById(R.id.inputText11); String inputStr11 = inputText11.getText().toString(); StringBuilder sql = new StringBuilder(); sql.append(" SELECT"); sql.append(" *"); sql.append(" FROM"); sql.append(" MyTable"); sql.append(" WHERE"); sql.append(" Kiji"); sql.append(" LIKE"); //この記述は、きもです。 sql.append(" "+ "\""+"%"+inputStr11+"%"+"\"" + " ;"); DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getReadableDatabase(); try{ Cursor cursor = db.rawQuery(sql.toString(), null); StringBuilder text = new StringBuilder(); while (cursor.moveToNext()){ text.append(cursor.getInt(0)); text.append("," + cursor.getString(1)); text.append("," + cursor.getString(2)); text.append("," + cursor.getString(3)); text.append("\n"); } TextView lblList = (TextView)this.findViewById(R.id.labelList); lblList.setText(text); }finally{ db.close(); } } private void buttonClear_OnClick(View v) { DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getWritableDatabase(); try{ ContentValues values = new ContentValues(); db.delete("MyTable", null, null); values.clear(); }finally{ db.close(); } } private void buttonQuery_OnClick(View v){ StringBuilder sql = new StringBuilder(); sql.append(" SELECT"); sql.append(" *"); sql.append(" FROM"); sql.append(" MyTable ;"); DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getReadableDatabase(); try{ Cursor cursor = db.rawQuery(sql.toString(), null); StringBuilder text = new StringBuilder(); while (cursor.moveToNext()){ text.append(cursor.getInt(0)); text.append("," + cursor.getString(1)); text.append("," + cursor.getString(2)); text.append("," + cursor.getString(3)); text.append("\n"); } TextView lblList = (TextView)this.findViewById(R.id.labelList); lblList.setText(text); }finally{ db.close(); } }} editTextのサイズ変更は inputText2.setTextSize(10.0f); activity_main.xml <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#F6DFDF" > <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/labelList"> </TextView> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnCreateDumy" android:text="データ追加"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="検索" android:id="@+id/buttonRowQuery"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="検索2" android:id="@+id/buttonRowQuery2"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="全データ" android:id="@+id/buttonQuery"> </Button> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="消去" android:id="@+id/buttonClear"> </Button> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="日時は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText2" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="記事は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView10" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText10" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="検索日時は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView3" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText3" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="検索記事は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView11" /> <EditText android:textSize="30dp" android:layout_width="300dp" android:layout_height="10sp" android:id="@+id/inputText11" android:layout_weight="1" android:gravity="right" android:background="@drawable/border"/> </LinearLayout>
2021.02.06
コメント(0)
以下は若干の手直しで実行可能です。Android データベースのデータを読み込む(Select)以下手直し TextView lblList = (TextView)this.~~~~; lblList.setText(text); をtryの中へ入れる。queryとrawquery(selectを使う)を対比しています。データベース削除を追加CREATEDUMMYでデータ作成後RAWQUERYでデータ表示CLEAR()ボタン押下RAWQUERYで再表示 private void buttonClear_OnClick(View v) { DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getWritableDatabase(); try{ ContentValues values = new ContentValues(); db.delete("MyTable", null, null); values.clear(); }finally{ db.close(); } }画面入力をデータベースへ入れる private void buttonCreateDumyData_OnClick(View v){ DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getWritableDatabase(); EditText inputText2 = (EditText) findViewById(R.id.inputText2); String inputStr2 = inputText2.getText().toString(); try{ ContentValues values = new ContentValues(); for (int i=0; i<10; i++){ values.put("Name", inputStr2 + (i+1)); values.put("Tel", "000-000-0000"); values.put("Age", 20+i); db.insert("MyTable", null, values); values.clear(); } }finally{ db.close(); } }22歳のみ選択(SELECT * FROM) private void buttonRowQuery_OnClick(View v){ //SQL作成 //select * from user where address = 'Tokyo'; StringBuilder sql = new StringBuilder(); sql.append(" SELECT"); sql.append(" *"); sql.append(" FROM"); sql.append(" MyTable"); sql.append(" WHERE"); sql.append(" Age"); sql.append(" ="); sql.append(" '22';"); //rawQueryメソッドでデータを取得 DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getReadableDatabase(); try{ Cursor cursor = db.rawQuery(sql.toString(), null); //TextViewに表示 StringBuilder text = new StringBuilder(); while (cursor.moveToNext()){ text.append(cursor.getInt(0)); text.append("," + cursor.getString(1)); text.append("," + cursor.getString(2)); text.append("," + cursor.getString(3)); text.append("\n"); } TextView lblList = (TextView)this.findViewById(R.id.labelList); lblList.setText(text); }finally{ db.close(); } }検索文字をUIから入力する全データ表示”12”のみ選択 private void buttonRowQuery_OnClick(View v){ //SQL作成 //select * from user where address = 'Tokyo'; EditText inputText3 = (EditText) findViewById(R.id.inputText3); String inputStr3 = inputText3.getText().toString(); StringBuilder sql = new StringBuilder(); sql.append(" SELECT"); sql.append(" *"); sql.append(" FROM"); sql.append(" MyTable"); sql.append(" WHERE"); sql.append(" Name"); sql.append(" ="); //ここがみそ sql.append(" "+ "\""+inputStr3+"\"" + " ;"); //rawQueryメソッドでデータを取得 DatabaseHelper dbHelper = new DatabaseHelper(this); SQLiteDatabase db=dbHelper.getReadableDatabase(); try{ Cursor cursor = db.rawQuery(sql.toString(), null); //TextViewに表示 StringBuilder text = new StringBuilder(); while (cursor.moveToNext()){ text.append(cursor.getInt(0)); text.append("," + cursor.getString(1)); text.append("," + cursor.getString(2)); text.append("," + cursor.getString(3)); text.append("\n"); } TextView lblList = (TextView)this.findViewById(R.id.labelList); lblList.setText(text); }finally{ db.close(); } }Learn SQLite in 24 Hours【電子書籍】[ Alex Nordeen ]【中古】 SQLite入門 すぐに使える軽快・軽量データベース・エンジン /西沢直木(著者) 【中古】afbAndroid SQLite Essentials【電子書籍】[ Sunny Kumar Aditya ]
2021.02.02
コメント(0)
【中古】 Android Studioではじめる Androidアプリ開発の教科書 Android Studio1.3対応 /松岡謙治(著者) 【中古】afb以下はそのまま可能[Android] ImageView をドラッグするTips 【Java】 継承とコンストラクタ super( )の意味 Your package name + class nameは 自分のものを入れる。 performClick()について: [Android]Buttonを押さずにonClickイベントを発生させる これは基本です。 アクティビティのライフサイクル 入力イベント このURLの補足としてxmlを以下に書いておきます。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" tools:layout_editor_absoluteX="39dp" tools:layout_editor_absoluteY="54dp" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" tools:layout_editor_absoluteX="37dp" tools:layout_editor_absoluteY="126dp" /></LinearLayout> [Androidアプリ開発]ボタンのイベントとリスナー自分の似顔絵を画像にして画像をドラッグして移動させ領域を超えたら「超えたよ」と表示さえる。 String str = "X="+dx+"\nY="+dy; if ((dx > 500)&&(dy >100)) { textView.setText("超えたよ"); }else{ textView.setText(str); }【すぐに使えるクーポン有!2点で50円、5点で300円引き】Android2.1プログラミングバイブル 【中古】【中古】 アプリを作ろう!Android入門 Android Studio版 ゼロから学ぶアプリの作成から公開まで Android5対応 /高江賢(著者),山田祥寛(そ 【中古】afb【中古】 Android Studioではじめる 簡単Androidアプリ開発 /有山圭二(著者) 【中古】afb【すぐに使えるクーポン有!2点で50円、5点で300円引き】ほんきで学ぶAndroidアプリ開発入門 Android Studio、Android SDK 5対応 【中古】【中古】作ればわかる!Androidプログラミング 第3版 SDK5/Android Studio対応 (Smart Mobile Developer)/金宏 和實
2021.01.29
コメント(0)
参考サイト タッチイベントを取得する Handlerの使い方を紹介する AndroidのCanvasを使いこなす! - 基本的な描画MainActivity.javapackage com.example.animatiothread;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.os.Bundle;import android.os.Handler;import android.os.Message;import androidx.appcompat.app.AppCompatActivity;import android.view.MotionEvent;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import java.util.Random;public class MainActivity extends AppCompatActivity { TextView log; ImageView testfield; Bitmap test; Canvas testc; final int testsize = 200; boolean testExec = false, testStop = false; protected Handler intreq; Rect testRect; Paint testColor; Thread testThread; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); log = findViewById(R.id.log); testfield = findViewById(R.id.testfield); test = Bitmap.createBitmap(testsize, testsize, Bitmap.Config.ARGB_8888); testc = new Canvas(test); testc.drawColor(Color.WHITE); testfield.setImageBitmap(test); testfield.setOnTouchListener(new downCatch()); testRect = new Rect(0, 0, 10, 10); testColor = new Paint(); //default black testColor.setStyle(Paint.Style.FILL); intreq = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { if (msg.what == 0) { if (test != null && testfield != null) { paintPicture(); } } else { Bundle msgd = msg.getData(); } return true; } }); } public void test_run() { if (testStop) { testStop = false; synchronized (testThread) { testThread.notify(); } } else { testExec = true; if (testThread != null) testThread = null; testThread = new Thread(new animator()); testThread.start(); } } public void stop() { if (!testStop) { if (testThread.isAlive()) { testStop = true; } } } class downCatch implements View.OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: test_run(); return true; } return false; } } public void paintPicture() { testfield.setImageBitmap(test); testfield.invalidate(); } class animator implements Runnable { Paint paint; @Override public void run() { Random random = new Random(); int randomX; int randomY; int randomZ; int randomX1; int randomY1; int randomZ1; paint = new Paint(); boolean done = false; int x = 0; testColor.setColor(Color.BLUE); while (true) { if (testStop) { try { synchronized (testThread) { testThread.wait(); } } catch (InterruptedException e) { } } paint.setColor(Color.argb(x*10,x*20,x*30,x*40)); randomX = random.nextInt(200); randomY = random.nextInt(200); randomZ = random.nextInt(200); randomX1 = random.nextInt(200); randomY1 = random.nextInt(200); randomZ1 = random.nextInt(200); testc.drawCircle(randomX, randomY,randomZ/10, paint); Rect rect = new Rect(randomX1, randomY1, randomX1+randomZ1/10, randomY1+randomZ1/10); testc.drawRect(rect, paint); x++; intreq.sendEmptyMessage(0); try { Thread.sleep(100); } catch (InterruptedException e) { } } } }}activity_main.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ImageView android:id="@+id/testfield" android:layout_width="0dp" android:layout_height="500dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <TextView android:id="@+id/log" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="TestDraw:" android:textSize="40sp" /></androidx.constraintlayout.widget.ConstraintLayout>
2021.01.27
コメント(0)
以下のサイトのソースはそのまま 貼り付けることで動きます。 但し、赤文字解決のためALT+ENTER あるいはALT+SHIFT+ENTER で解決する過程で名称が変わる 部分がありますが、 丹念にオリジナルを見て直せばいいです。 [Android] データベース SQLite の簡単作成 概要 ・SQLiteOpenHelperを継承する ・データベースをcreateする。 ・データをinsertする。 ・データベースの読み込みは SQLiteOpenHelperの getReadableDatabaseメソッド が用意されている。 オリジナルにはない削除を 追加してみました。 立ち上げ後 aaaa:1111 bbbb;2222をinsertしてread 削除してread データが消えています。 private void deleteData(SQLiteDatabase db){ db.delete("testdb", null,null); } 今後の学習 検索機能はqueryを使うらしい androidではselect文が使えない らしい。 movetofirstで該当箇所直前まで 移動させてmovetonextで 読み取るようです。 マンガ教養としてのプログラミング講座 【中古】SQLite入門 第2版 西沢 直木 【中古】 SQLiteポケットリファレンス /五十嵐貴之【著】 【中古】afb はじめてのプログラミング講座
2021.01.23
コメント(0)
クリックしている間、円が左上から右下に流れていきます。Tips 別スレッドからUIを操作する HandlerとMessage - 別スレッドでのGUI操作 Android Concurrent Programming: Looper, Handler and Message [Android] Activityに時計を表示する(Activityの非同期更新)アンドロイドで別スレッドからUIを動かせないらしい。上記はそのための仕組みが述べられている。MainActivity.javapackage com.example.animatiothread;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.os.Bundle;import android.os.Handler;import android.os.Message;import androidx.appcompat.app.AppCompatActivity;import android.view.MotionEvent;import android.view.View;import android.widget.ImageView;import android.widget.TextView;public class MainActivity extends AppCompatActivity { TextView log; ImageView testfield; Bitmap test; Canvas testc; final int testsize = 200; boolean testExec = false, testStop = false; protected Handler intreq; Rect testRect; Paint testColor; Thread testThread; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); log = findViewById(R.id.log); testfield = findViewById(R.id.testfield); test = Bitmap.createBitmap(testsize, testsize, Bitmap.Config.ARGB_8888); testc = new Canvas(test); testc.drawColor(Color.WHITE); testfield.setImageBitmap(test); testfield.setOnTouchListener(new downCatch()); testRect = new Rect(0, 0, 10, 10); testColor = new Paint(); //default black testColor.setStyle(Paint.Style.FILL); intreq = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { if (msg.what == 0) { if (test != null && testfield != null) { paintPicture(); } } else { Bundle msgd = msg.getData(); } return true; } }); } public void test_run() { if (testStop) { testStop = false; synchronized (testThread) { testThread.notify(); } } else { testExec = true; if (testThread != null) testThread = null; testThread = new Thread(new animator()); testThread.start(); } } public void stop() { if (!testStop) { if (testThread.isAlive()) { testStop = true; } } } class downCatch implements View.OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: test_run(); return true; case MotionEvent.ACTION_UP: stop(); return true; } return false; } } public void paintPicture() { testfield.setImageBitmap(test); testfield.invalidate(); } class animator implements Runnable { Paint paint; @Override public void run() { paint = new Paint(); boolean done = false; int x = 0; testColor.setColor(Color.BLUE); while (!done) { if (!testExec) { return; } if (testStop) { try { synchronized (testThread) { testThread.wait(); } } catch (InterruptedException e) { } } testc.drawCircle(x, x,x/ 2, paint); x++; intreq.sendEmptyMessage(0); try { Thread.sleep(100); } catch (InterruptedException e) { } if (x >= testsize) done = true; } testExec = false; } }}activity_main.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ImageView android:id="@+id/testfield" android:layout_width="0dp" android:layout_height="500dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> <TextView android:id="@+id/log" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="TestDraw:" android:textSize="40sp" /></androidx.constraintlayout.widget.ConstraintLayout>色を変化させてみた。paint.setColor(Color.argb(x*10,x*20,x*30,x*40));testc.drawCircle(x, x,x/ 2, paint);カラフルに遊んでみるRandom random = new Random();paint.setColor(Color.argb(x*10,x*20,x*30,x*40));randomX = random.nextInt(200);randomY = random.nextInt(200);testc.drawCircle(randomX, randomY,randomX/10, paint);【中古】現場で使える〈逆引き+実践〉Androidプログラミングテクニック / 石原正樹【中古】 Androidプログラミングバイブル SDK4/3/2対応 /布留川英一【著】 【中古】afb【中古】 作りながら覚えるAndroidプログラミング /松岡宣【著】 【中古】afb【中古】 Google Androidプログラミング入門 /江川崇,藤井大助,麻野耕一,藤田泰介,山田暁通【ほか共著】 【中古】afb
2021.01.20
コメント(0)
この文字はビットマップです。 テキストでなく画像です。 package com.example.drawline;import androidx.appcompat.app.AppCompatActivity;import android.graphics.Bitmap;import android.os.Bundle;import android.graphics.Canvas;import android.graphics.Paint;import android.widget.ImageView;import android.graphics.Color;public class MainActivity extends AppCompatActivity { ImageView c1; Thread myThread; Canvas a1; Bitmap b1; final int framesize = 500; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); c1 = findViewById(R.id.sc); b1 = Bitmap.createBitmap(framesize, framesize, Bitmap.Config.ARGB_8888); a1 = new Canvas(b1); a1.drawColor(Color.WHITE); c1.setImageBitmap(b1); myThread = new Thread(new animator()); myThread.start(); } class animator implements Runnable { @Override public void run() { Paint pobj = new Paint(); int x,y; for (y=0;y<200;y=y+20) { //float[] line_pattern0 = {0, 0, x, y}; //a1.drawLines(line_pattern0, pobj); a1.drawText("■■■■■■■■■■■■■■■■■■■■■■■■■", 50, y, pobj); a1.drawText("文字文字文字文字文字文字文字", 50, y+10, pobj); } } }} 【すぐに使えるクーポン有!2点で50円、5点で300円引き】Androidアプリ開発入門者のための教本—人気講師のコースがそのまま1冊に! [単行本] 小林 明大、 北原 光星、 竹内 一成、 橋爪 香織; 山本 昭弘【中古】 【中古】 基礎から学ぶAndroidアプリ開発 /渡邊昌之【著】 【中古】afb
2021.01.19
コメント(0)
main_activty.xmlのandroid:xxxx="の後に"@string/yyyy"を入れるとstrings.xmlの <string name="yyyy">を読み取ります。【中古】 作りながら覚えるAndroidプログラミング /松岡宣【著】 【中古】afb
2021.01.18
コメント(0)
以下を参考に実装したら、ほとんど修正なしで実行できました。Android における非同期 HTTP 通信注意事項:・importモジュールのバージョン違いで赤文字になる部分 がありますが、ALT+Enterで解決できます。・xxxx.javaの新規クラスの追加は一つ前の記事を参考 に追加します。【中古】 Androidプログラミングレシピ 増補改訂版 アーキテクチャ/UI/ネットワーク編 /デイヴ・スミス(著者),ジェフ・フリーセン(著者),吉川邦夫(訳者) 【中古】afb
2021.01.17
コメント(0)
公開されたソースを自分の環境で試すときに新なソースを追加するケースがあります。android ->app->java->com.xxxx.xxxxにポイントし右ボタンを押下しNew->Java Classを押下一番上に追加したいxxxx.javaのxxxxを入れて押下以下のように空のソースが出来上がります。android studioの操作が初めてに人にもわかりやすく書かれています。【中古】 かんたん7ステップ JavaからはじめようAndroidプログラミング /大津真【著】 【中古】afbJavaからはじめようAndroidプログラミングーAndroid Studio対応版【電子書籍】[ 大津 真 ]
2021.01.17
コメント(0)
ファイルの書き込み、読み出し、消去を試してみますクリアボタンを押下するとファイルの中身が消去されますMainActivity.javapackage com.example.textinout;import android.content.Context;import android.os.Bundle;import android.app.Activity;import android.content.res.Resources;import android.view.View;import android.widget.EditText;import android.widget.TextView;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class MainActivity extends Activity { private EditText edit; private String filename = "data1.txt"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClickButton(View view) { EditText inputText2 = (EditText) findViewById(R.id.inputText2); String inputStr2 = inputText2.getText().toString(); try { saveText(inputStr2.toString()); } catch (IOException e) { e.printStackTrace(); } try { loadText(); } catch (IOException e) { e.printStackTrace(); } } public void onClickButton2(View view) throws IOException{ TextView outputTextView2 = (TextView) findViewById(R.id.outputText2); String str = new String("").trim();// outputTextView2.setText(str); FileOutputStream output = this.openFileOutput(filename, Context.MODE_PRIVATE); output.write(0); output.close(); } public void onClickButton3(View view) throws IOException{ EditText inputText2 = (EditText) findViewById(R.id.inputText2); String inputStr2 = inputText2.getText().toString(); try { loadText(); } catch (IOException e) { e.printStackTrace(); } } public void onClickButton4(View view) throws IOException{ TextView outputTextView2 = (TextView) findViewById(R.id.outputText2); String str = new String("").trim(); outputTextView2.setText(str); } public void saveText(String data) throws IOException { FileOutputStream output = this.openFileOutput(filename, Context.MODE_APPEND); output.write(data.getBytes()); output.close(); } public void loadText() throws IOException { FileInputStream input = this.openFileInput(filename); byte[] buffer = new byte[input.available()]; input.read(buffer); String str = new String(buffer).trim(); TextView outputTextView2 = (TextView) findViewById(R.id.outputText2); outputTextView2.setText(str); input.close(); }}activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="テキスト入力は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView" /> <EditText android:textSize="30sp" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/inputText2" android:layout_weight="1" android:gravity="right" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/calcBtn" android:id="@+id/button1" android:layout_gravity="center_horizontal" android:onClick="onClickButton" /> <Button android:id="@+id/button3" android:layout_width="361dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:onClick="onClickButton3" android:text="ファイルの読み出し" android:textSize="30sp" /> <Button android:id="@+id/button2" android:layout_width="360dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:onClick="onClickButton2" android:text="ファイルクリア" android:textSize="30sp" /> <Button android:id="@+id/button4" android:layout_width="362dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:onClick="onClickButton4" android:text="表示のみクリア" android:textSize="30sp" /> <TextView android:textSize="30sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="ここに入力が表示されます" android:id="@+id/outputText2" android:layout_gravity="center_horizontal" /> </LinearLayout></LinearLayout>strings.xml<resources> <string name="app_name">Input Output Test</string> <string name="calcBtn">ファイルの追加書き込み</string></resources>
2021.01.16
コメント(0)
android studioのお勉強:入力を出力する上記にファイル読み書きを追加しました。ファイルに文字列が追加されていく様子がわかります。AVDでは英数字しか入力できませんがタブレットでは日本語(全角)が入力できました。package com.example.textinout;import android.content.Context;import android.os.Bundle;import android.app.Activity;import android.content.res.Resources;import android.view.View;import android.widget.EditText;import android.widget.TextView;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class MainActivity extends Activity { private EditText edit; private String filename = "data1.txt"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Resources res = getResources(); } public void onClickButton(View view) { EditText inputText2 = (EditText) findViewById(R.id.inputText2); String inputStr2 = inputText2.getText().toString(); try { saveText(inputStr2.toString()); } catch (IOException e) { e.printStackTrace(); } try { loadText(); } catch (IOException e) { e.printStackTrace(); } } public void saveText(String data) throws IOException { FileOutputStream output = this.openFileOutput(filename, Context.MODE_APPEND); output.write(data.getBytes()); output.close(); } public void loadText() throws IOException { FileInputStream input = this.openFileInput(filename); byte[] buffer = new byte[input.available()]; input.read(buffer); String str = new String(buffer).trim(); TextView outputTextView2 = (TextView) findViewById(R.id.outputText2); outputTextView2.setText(str); input.close(); }}android上でdata1.txtを探したが見つからずどうも他のアプリからアクセスできないように暗号化されているらしい。だから見つからないようです。千里の道も一歩から。【中古】 Android Studioではじめる 簡単Androidアプリ開発 /有山圭二(著者) 【中古】afb【すぐに使えるクーポン有!2点で50円、5点で300円引き】ほんきで学ぶAndroidアプリ開発入門 Android Studio、Android SDK 5対応 【中古】【中古】サブカルチャー ≪コンピュータ≫ TECHNICAL MASTER はじめてのAndroidアプリ開発 第2版 Android Studio 2対応 / 山田祥寛 【中古】afb【中古】基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ) 森 洋之【中古】 これ1冊でできる!Android Studioアプリ開発入門 Android Studio 2.1対応 /清水美樹(著者) 【中古】afb【中古】 基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.X対応 プロが本気で教えるアプリ作りの基本「技」 Informa 【中古】afb
2021.01.14
コメント(0)
前の内容をスレッドを使って描画しました。sleepを追加すればゆっくり動くかもしれません。TipscreateScaledBitmapsetImageBitmapdrawLinesMainActivity.javapackage com.example.drawline;import androidx.appcompat.app.AppCompatActivity;import android.graphics.Bitmap;import android.os.Bundle;import android.graphics.Canvas;import android.graphics.Paint;import android.widget.ImageView;import android.graphics.Color;public class MainActivity extends AppCompatActivity { ImageView c1; Thread myThread; Canvas a1; Bitmap b1; final int framesize = 1000; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); c1 = findViewById(R.id.sc); b1 = Bitmap.createBitmap(framesize, framesize, Bitmap.Config.ARGB_8888); a1 = new Canvas(b1); a1.drawColor(Color.WHITE); c1.setImageBitmap(b1); myThread = new Thread(new animator()); myThread.start(); } class animator implements Runnable { @Override public void run() { Paint pobj = new Paint(); int x,y; for (x=0;x<1000;x=x+10) { for (y=0;y<1000;y=y+10) { float[] line_pattern0 = {0, 0, x, y}; a1.drawLines(line_pattern0, pobj); } } } }}activity_main.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@+id/sc" android:layout_width="0dp" android:layout_height="200dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent"/> <ScrollView android:id="@+id/horizontalScrollView1" android:layout_width="0dp" android:layout_height="0dp" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:layout_marginBottom="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/sc" /></androidx.constraintlayout.widget.ConstraintLayout>作ればわかる!Androidプログラミング 10の実践サンプルで学ぶAndroidアプリ開発入門/金宏和實【1000円以上送料無料】【中古】Androidプログラミングバイブル SDK5/4対応 (smart phone programming bible)/布留川 英一はじめてのAndroidプログラミング しっかり丁寧だから安心/金田浩明【1000円以上送料無料】【新品】【本】作って楽しむプログラミングAndroidアプリ超入門 Android Studio 3.3 & Kotlin 1.3で学ぶはじめてのスマホアプリ作成 高江賢/著 山田祥寛/監修【中古】作ればわかる! Androidプログラミング 10の実践サンプルで学ぶAndroidアプリ開発入 第3版/翔泳社/金宏和實 (大型本)送料無料【中古】作例で覚えるAndroidプログラミング入門
2021.01.13
コメント(0)
複数の線を引いてみました。 Tips Bundle savedInstanceStateを学ぶ アクティビティのライフサイクル 【Android】savedInstanceStateの意味と開発者オプション【初心者向け】 アンドイドはアプリ間を往来 すると自身の情報が破壊される ことがあるらしい。 MainActivity.java package com.example.drawline;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.view.View;public class MainActivity extends AppCompatActivity {@Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); /* これの場合Hello Worldのフレームがでる setContentView(R.layout.activity_main);*/ setContentView(new DrawTest(this)); //普通はわかりやすく、こう書きます //DrawTest drawTest = new DrawTest(this); //setContentView(drawTest); }static public class DrawTest extends View {public DrawTest(Context context) {super(context);}@Override protected void onDraw(Canvas canvas) {//クラス名 インスタンス名 = new クラス名();Paint pobj = new Paint();int x;for (x=0;x<500;x=x+10) {//drawLine(float startX, float startY, float stopX, float stopY, Paint paint)float[] line_pattern0 = {0, 0, x, 500};canvas.drawLines(line_pattern0, pobj);}}}} 便利で簡単オブジェクト指向「Kotlin」と高速描画グラフィックライブラリ「OpenGL ES3」ではじめる「Android」入門 「3DグラフィックスAPI」の使い方を実際に組んで習得! 大西武/著
2021.01.13
コメント(0)
android studioで足し算機能を実装。やっとここまで出来るようになりました。文字を大きくしました。アプリ起動後入力1と入力2に足し算する数値を入れてボタンを押下します足し算結果が表示されます参考:DecimalFormatクラスAndroidのActivityは再作成に備えてSavedInstanceStateを使おうMainActivity.javapackage com.example.xxxxxxxx;import android.os.Bundle;import android.app.Activity;import android.view.View;import android.widget.EditText;import android.widget.TextView;import java.text.DecimalFormat;public class MainActivity extends Activity { DecimalFormat myFormat = new DecimalFormat("###.##"); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClickButton(View view) { EditText inputText2 = (EditText) findViewById(R.id.inputText2); String inputStr2 = inputText2.getText().toString(); double input_d2 = Double.parseDouble(inputStr2); String d2Str = myFormat.format(input_d2); EditText inputText3 = (EditText) findViewById(R.id.inputText3); String inputStr3 = inputText3.getText().toString(); double input_d3 = Double.parseDouble(inputStr3); String sumStr = myFormat.format(input_d3 + input_d2); TextView outputTextView2 = (TextView) findViewById(R.id.outputText2); outputTextView2.setText(sumStr); }}activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical"> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:textSize="40sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="入力1は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView" /> <EditText android:textSize="40sp" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/inputText2" android:layout_weight="1" android:gravity="right" /> <TextView android:textSize="40sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="入力2は?" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textView2" /> <EditText android:textSize="40sp" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/inputText3" android:layout_weight="1" android:gravity="right" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:textSize="40sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="足し算します" android:id="@+id/button1" android:layout_gravity="center_horizontal" android:onClick="onClickButton" /> <TextView android:textSize="40sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="ここに結果が表示されます" android:id="@+id/outputText2" android:layout_gravity="center_horizontal" /> </LinearLayout></LinearLayout>
2021.01.11
コメント(0)
テキスト入力をそのまま出力します。起動すると以下の画面が出ますテキスト入力しボタンを押すと入力がそのまま出力されます。MainActivity.javapackage com.example.textinout;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.app.Activity;import android.content.res.Resources;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import org.w3c.dom.Text;import java.text.DecimalFormat;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Resources res = getResources();} public void onClickButton(View view) {EditText inputText2 = (EditText) findViewById(R.id.inputText2);String inputStr2 = inputText2.getText().toString();TextView outputTextView2 = (TextView) findViewById(R.id.outputText2);outputTextView2.setText(inputStr2);}}strings.xml<resources> <string name="app_name">Input Output Test</string> <string name="calcBtn">押してください</string></resources>activity_main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"><TextView android:textSize="30sp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="テキスト入力は?"android:textAppearance="?android:attr/textAppearanceLarge"android:id="@+id/textView" /><EditText android:textSize="30sp" android:layout_width="0dp"android:layout_height="wrap_content"android:id="@+id/inputText2"android:layout_weight="1"android:gravity="right" /></LinearLayout><LinearLayoutandroid:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><Button android:textSize="30sp" android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/calcBtn"android:id="@+id/button1"android:layout_gravity="center_horizontal"android:onClick="onClickButton" /><TextView android:textSize="30sp" android:layout_width="wrap_content"android:layout_height="wrap_content"android:textAppearance="?android:attr/textAppearanceLarge"android:text="ここに入力が表示されます"android:id="@+id/outputText2"android:layout_gravity="center_horizontal" /></LinearLayout></LinearLayout>感想: 一か月程 android studioを勉強して実感したことですが 公開サンプルをそのまま貼り付けても、うまくいかないことが 多く、やはり基本をしっかり理解しながら進めていくことだと 思います。 ある程度、理解が深まれば、対応ができるようになります。はじめてのAndroidプログラミング 第3版【電子書籍】[ 金田 浩明 ]実践!Androidプログラミング入門【電子書籍】作ればわかる!Androidプログラミング Kotlin対応 10の実践サンプルで学ぶAndroidアプリ開発入門 [ 金宏 和實 ]Android & iOS両対応 つくりながら覚えるスマホゲームプログラミング【電子書籍】[ 掌田津耶乃(著) ]【中古】 初歩からわかるAndroid最新プログラミング /柴田文彦,藤枝崇史【共著】,安生真【監修・共著】 【中古】afb
2021.01.11
コメント(0)
android studioの学習なら、やはり動画ですね。以下に勉強になるサイトがありました。15分で作る? Androidアプリ【 簡易ストップウォッチ 】その通りにやれば、同じように動きます。xxxx studioという名前の開発環境は、まずは、言語スキルの前にツールの使い方をマスターすることが必要です。その早道は操作のレクチャーを受けることが一番ですが動画を見ることで同じような効果を得ることができます。2021年福袋 プログラミング学習はじめてセット ロボット+Androidタブレット
2021.01.10
コメント(0)
独自のフレームを作成してAVDで実行すると 元のxmlの画面が出てしまいます。 独自フレームのあとにhello worldの 画面がでるというものです 以下のようにsetContentView(R.layout.activity_main); をコメントにしてください。 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); MyView myView = new MyView(this); setContentView(myView); } 【中古】 Android Studioではじめる 簡単Androidアプリ開発 /有山圭二(著者) 【中古】afb 【すぐに使えるクーポン有!2点で50円、5点で300円引き】ほんきで学ぶAndroidアプリ開発入門 Android Studio、Android SDK 5対応 【中古】
2021.01.10
コメント(0)
画面遷移の例です。ボタンを押す子供フレームになるMainActivity.javapackage com.example.framechenge;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(this); } public void onClick(View view){ Intent intent = new Intent(this, SampleActivity2.class); startActivity(intent); }}SampleActivity2.javapackage com.example.framechenge;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;public class SampleActivity2 extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sample2); }}activity_main.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="親フレーム" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" android:textSize="50sp"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="押してください" android:id="@+id/button"> </Button></androidx.constraintlayout.widget.ConstraintLayout>activity_sample2.xml<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SampleActivity2"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="子供フレーム" android:id="@+id/textView" android:textSize="50sp" /></androidx.constraintlayout.widget.ConstraintLayout>【中古】 Android StudioではじめるAndroidプログラミング入門 /掌田津耶乃【著】 【中古】afb【すぐに使えるクーポン有!2点で50円、5点で300円引き】ほんきで学ぶAndroidアプリ開発入門 Android Studio、Android SDK 5対応 【中古】【中古】Android StudioではじめるAndroidプログラミング入門 第2版 掌田 津耶乃
2021.01.09
コメント(0)
android studioでスレッドでカウントアップしlogに表示するケースを実験しました。UIをスレッドで動作させるのはここではないですが。MainActivity.javapackage com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.text.BreakIterator;import static java.sql.DriverManager.println;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); test sub = new test(); Thread thread = new Thread(sub); thread.start(); }}class test implements Runnable { Thread thread; int i; @Override public void run() { while (true) { System.out.println("AAAAA=" + Integer.toString(i)); i++; try { Thread.sleep(1000); } catch (Exception ex) { } } }}View->Tool windows ->Logcatでandroid studio 画面下に表示される。2021-01-06 22:12:10.029 9671-9686/com.example.myapplication I/System.out: AAAAA=2122021-01-06 22:12:11.031 9671-9686/com.example.myapplication I/System.out: AAAAA=2132021-01-06 22:12:12.033 9671-9686/com.example.myapplication I/System.out: AAAAA=2142021-01-06 22:12:13.034 9671-9686/com.example.myapplication I/System.out: AAAAA=2152021-01-06 22:12:14.036 9671-9686/com.example.myapplication I/System.out: AAAAA=216はじめてのAndroidプログラミング しっかり丁寧だから安心/金田浩明【合計3000円以上で送料無料】【新品】【本】作って楽しむプログラミングAndroidアプリ超入門 Android Studio 3.3 & Kotlin 1.3で学ぶはじめてのスマホアプリ作成 高江賢/著 山田祥寛/監修送料無料【中古】Android StudioではじめるAndroidプログラミング入門 第2版【中古】作ればわかる!Androidプログラミング 第3版 SDK5/Android Studio対応 (Smart Mobile Developer)/金宏 和實
2021.01.06
コメント(0)
idはRクラスを介して、XMLのコンポーネントとJavaのインスタンスが 関連付けられるようになっている Button button = findViewById(R.id.button); button.setText("今日"); は XMLで定義したbuttonをインスタンスして setTextメソッドを実行する。 という意味 【すぐに使えるクーポン有!2点で50円、5点で300円引き】Androidアプリ開発入門者のための教本—人気講師のコースがそのまま1冊に! [単行本] 小林 明大、 北原 光星、 竹内 一成、 橋爪 香織; 山本 昭弘【中古】 【すぐに使えるクーポン有!2点で50円、5点で300円引き】TECHNICAL MASTERはじめてのAndroidアプリ開発Android4対応版 【中古】 【中古】Android SDK開発のレシピ / 塚田翔也 【中古】 基礎から学ぶAndroidアプリ開発 /渡邊昌之【著】 【中古】afb 【中古】 Google Androidアプリ開発ガイド /柳井政和【著】 【中古】afb 【中古】 Androidタブレットアプリ開発ガイド 画面設計とタブレット機能および外部APIの実装まで Android SDK 3対応 /井形圭介,上中正統,尾古 【中古】afb
2021.01.05
コメント(0)
ボタンを押すことで画像が切り替わる例です。少々言語記述がありますアプリ起動後画像1ボタン押下画像2ボタン押下android studioでdrawableにマウスをポイントし右クリックで画像a01.jpg a02.jpg pasteするactivity_main.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" tools:layout_editor_absoluteX="142dp" tools:layout_editor_absoluteY="492dp" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" //画像1ボタンをクリックしたらdisp_a02()メソッドを呼ぶ android:onClick="disp_a02" android:text="画像1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" //リソース ID で指定されたビューの下にこのビューの上端が来るように配置 android:layout_below="@+id/button" //画像2ボタンをクリックしたらdisp_a01()メソッドを呼ぶ android:onClick="disp_a01" android:text="画像2" /></RelativeLayout>MainActivity.javapackage com.example.imageview;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;public class MainActivity extends AppCompatActivity { // a02.jpgを表示するメソッド public void disp_a02(View v) { ((ImageView) findViewById(R.id.imageView)).setImageResource(R.drawable.a02); } // a01.jpgを表示するメソッド public void disp_a01(View v) {((ImageView) findViewById(R.id.imageView)).setImageResource(R.drawable.a01); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}【中古】単行本(実用) ≪コンピュータ≫ やさしいAndroidプログラミング 第3版 / 高橋麻奈 【中古】afb【新品】はじめてのAndroidプログラミング しっかり丁寧だから安心 金田浩明/著【新品】【本】作ればわかる!Androidプログラミング 10の実践サンプルで学ぶAndroidアプリ開発入門 金宏和實/著【新品】【本】作って楽しむプログラミングAndroidアプリ超入門 Android Studio 3.3 & Kotlin 1.3で学ぶはじめてのスマホアプリ作成 高江賢/著 山田祥寛/監修【中古】はじめてのAndroidプログラミング 第3版 [単行本] 金田 浩明
2021.01.01
コメント(0)
このケースは言語記述は無しです。 a01.jpgをコピーしておいてマウスをdrawableに ポイントし右ボタンでpasteを選択 AVDで実行またはAPKを実機にインストールし実行 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/a01" tools:layout_editor_absoluteX="142dp" tools:layout_editor_absoluteY="492dp" /> </androidx.constraintlayout.widget.ConstraintLayout>
2021.01.01
コメント(0)
初期値今日ボタン明日ボタンMainActivity.javapackage com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import java.text.BreakIterator;import static java.sql.DriverManager.println;public class MainActivity extends AppCompatActivity { Thread myThread; String str1 = "今日は晴です"; String str2 = "明日は雨です"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = findViewById(R.id.textView); textView.setText("こんにちは"); Button button = findViewById(R.id.button); button.setText("今日"); Button buttonx = findViewById(R.id.button2); buttonx.setText("明日"); final TextView text1 = (TextView)findViewById(R.id.textView); Button button1 = (Button)findViewById(R.id.button); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { text1.setText(str1); } }); Button button2 = (Button)findViewById(R.id.button2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { text1.setText(str2); } }); }}activity.main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textSize="100sp" android:layout_marginTop="0dp" android:layout_marginLeft="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:orientation="vertical" tools:layout_editor_absoluteX="68dp" tools:layout_editor_absoluteY="532dp" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:orientation="vertical" tools:layout_editor_absoluteX="204dp" tools:layout_editor_absoluteY="681dp" />【中古】 作りながら覚えるAndroidプログラミング /松岡宣【著】 【中古】afb【中古】現場で使える〈逆引き+実践〉Androidプログラミングテクニック / 石原正樹
2020.12.31
コメント(0)
【はじめてのAndroidアプリ開発】タイマーアプリを作ってみよう Javaでスレッドを利用する方法を現役エンジニアが解説【初心者向け】 Runnable スレッド例題 なぜかandroid studioで うまく動かない jvroidでは動きます Android Studioに入門しよう ~UI・レイアウト編 Android アプリを作る 【中古】Android StudioではじめるAndroidプログラミング入門 Android 6.0 Marshmallow A 第2版/秀和システム/掌田津耶乃 (単行本)
2020.12.28
コメント(0)
構築に苦労しててでもシミュレーターは使うべきです。 デバッグ効率は全然違います まずは画面のみ ここは最初は1時間は覚悟する この状態から run 'app'を実行する 【中古】 スマートにプログラミング Android入門編 SDK4.x対応 /堀切堤【著】 【中古】afb 【中古】 javaからはじめようAndroidプログラミング /大津真(著者) 【中古】afb 送料無料【中古】スマートにプログラミング Android入門編 第4版 SDK5.x Lollipop対応 [Tankobon Softcover] 堀切 堤 【新品】【本】作って楽しむプログラミングAndroidアプリ超入門 Android Studio 3.3 & Kotlin 1.3で学ぶはじめてのスマホアプリ作成 高江賢/著 山田祥寛/監修 USED【送料無料】アンドロイドプログラミング最初の一歩 3 (Android6 Eclipse AndroidStudio2) [Tankobon Softcover] 佐藤 浩 and 長南 恵 送料無料【中古】作例で覚えるAndroidプログラミング入門
2020.12.08
コメント(0)
とにかく一番手っ取り早く Hello Worldの表示方法です。 後述にボタン押下でテキスト 変更の例を入れてます。 android studioのインストールは 完了しているものとします しかしインストールからなら 1時間は覚悟する必要があります どんな言語でも開発環境構築には 苦労します メモリ4GのPCでは、挑戦しない ほうがいいです。 遅すぎて使い物になりません。 そして32bit PCではインストールも できません(昔はできましたが) エミュレータは環境構築に 苦労するので、省きました。 (後からやってみましたが 意外と簡単でした) New Projectで新しいプロジェクト の作成を指示します Empty Activityを選択 SDKはAndroid 7.0を選択 (自分の環境に合わせる) バージョンが合わないと Android端末での インストールでエラーします Build APKでAPKファイルを 作成する 画面右下のlocateをクリックすると 作成されたAPKが見える これをAndroid端末に転送する (USB接続でもなんでもいい onedriveならより簡単) そしてAndroid端末でAPKを クリックしてインストール完了 アプリを開くとHello Worldが出る activity_main.xmlでボタンとか 追加できます。 andriod studio使用感: 2.8GHz 8コア メモリ12G なのですが とにかく開発環境が重たいです。 参考になります アプリ開発の基本とそれぞれのファイルの役割を覚える 構造は理解するのでなく 慣れることです Android アプリを作る Android開発のためのJava入門 Android Studioの使い方とActivityについて Android開発のためのJava入門 第5回「クラスとメソッド」 Hello Worldを書き換える 表示位置の変更は以下を参照 [Android] アプリのレイアウトに必須, paddingとmarginで間隔を調整する findViewByIdはjavascriptのgetElementById と似ています。対象が documentオブジェクトと viewオブジェクトの違い ビュー毎に個別のIDを設定 =>android studio id属性の値を指定して要素ノードを取得(getElementById) =>javascript ボタンを押してテキストを変更する例 ボタンを押すと ソース 継承とoverrideですね。 MainActivity.javapublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // TextView textView = findViewById(R.id.textView); // textView.setText("こんにちは"); Button button = findViewById(R.id.button); button.setText("これはボタンです"); final TextView text1 = (TextView)findViewById(R.id.textView); Button button1 = (Button)findViewById(R.id.button); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { text1.setText("押されたよ!"); } }); } } activity_main.xml <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:layout_marginTop="81dp" android:layout_marginLeft="101dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" tools:layout_editor_absoluteX="206dp" tools:layout_editor_absoluteY="470dp" /> 文字のサイズを変えてみる ボタンを押す <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textSize="100sp" android:layout_marginTop="0dp" android:layout_marginLeft="0dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button" android:layout_width="800dp" android:layout_height="200dp" android:text="Button" android:textSize="50sp" tools:layout_editor_absoluteX="206dp" tools:layout_editor_absoluteY="470dp" /> Runnableインターフェースを使ったThread実装 但しrunnableは引数を持てない。 しかも例外をスローできない。 public class MainActivity extends AppCompatActivity { Thread myThread; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myThread = new Thread(new test()); myThread.start(); }}class test implements Runnable { @Override public void run() { while(true){ println("aaaaaaaaaaaaaaaaaaa"); } }} 【中古】サブカルチャー ≪コンピュータ≫ TECHNICAL MASTER はじめてのAndroidアプリ開発 第2版 Android Studio 2対応 / 山田祥寛 【中古】afb 【中古】アプリを作ろう! Android入門 Android Studio版 Android5対応 【中古】 基礎から学ぶAndroidアプリ開発 /渡邊昌之【著】 【中古】afb 【中古】 Google Androidアプリ開発ガイド /柳井政和【著】 【中古】afb 【中古】 Androidタブレットアプリ開発ガイド 画面設計とタブレット機能および外部APIの実装まで Android SDK 3対応 /井形圭介,上中正統,尾古 【中古】afb 【中古】 Google Androidアプリ開発ガイド /クロノス・クラウン,柳井政和【著】 【中古】afb
2020.12.05
コメント(0)
全32件 (32件中 1-32件目)
1