android buttonの色を変える

backgroundを変えます。

LinearLayoutにする

<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: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"/>

</LinearLayout>

orientationはデフォルトだとhorizontalで設定されている。
android:orientation=”vertical” とすると、verticalで表示される。

<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">

android 背景画像に写真を指定する

app-> res-> drawable でpasteする

画像が置かれました。

富士ソフトの写真をbackground.JPGとして、app-> res-> drawableに置く
activity_main.xmlで以下の一文を追加
android:background=”@drawable/background”

<android.support.constraint.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"
    android:background="@drawable/background"
    tools:context=".MainActivity">

は~~~????なにこれ
意味わからん。@drawableで、ディレクトリを指定しているのか?

directory structureで、v24の方を指定すると、画像は表示されませんね。

android layout

TextView, EditText, Button, ImageView
View Group

layoutの種類
LinearLayout, TableLayout, RelativeLayout, FrameLayout

android:layout_hight
android:layout_width
android:padding
android:layout_margin

android:gravity
android:layout_gravity

ConstraintLayoutは自動的にレイアウトの位置をマテリアルデザインに沿った最適な位置に調整してくれます。iOSでいうところのStoryboardのAutoLayout

ConstraintLayoutのbackgroundを変えてみます

すげー
写真をbackgroundにしたい。

android app store申請に必要な事

ゴールから逆算して考えよう! ということで、必要項目は、

簡単な説明(80文字以内)
詳しい説明(4000文字以内)
スクリーンショット
高解像度アイコン
ヘッダー画像
プロモーション画像(不要)
テレビバナー(Android TV対応アプリ)
Daydreamの360°立体画像(Daydream対応アプリ)
プロモーション画像
アプリタイプ
カテゴリ
コンテンツレーティング
ウェブサイト
メール
電話番号
プライバシーポリシー

Google Play Developer Console
google play 初回登録費 $25
iOS 年間参加費 $99

気合いれろ、気合!

え、developer名?

>開発者名は実名で登録する必要があるかと思います。
まじかよ、困るな~

なんか知らんが、ワクワクしてきた。

なるほど、APKをアップロードするのか。
少しずつ見えてきた。

IT業界って、なにげに初期投資しないとゲームに参加できない仕組みになってるな~

spinnerの挙動

Javaだな、kotlinのドキュメントが少ない気がするが、気のせいか?
https://developer.android.com/guide/topics/ui/controls/spinner?hl=ja

public void onItemSelected(AdapterView<?> parent, View view,
            int pos, long id) {
        // An item was selected. You can retrieve the selected item using
        // parent.getItemAtPosition(pos)
    }

    public void onNothingSelected(AdapterView<?> parent) {
        // Another interface callback
    }

in these two days, absolutely stunned, too much space that i have to fill in, but keep going.

apk fileとは

発注したインドのエンジニアから、apkファイルが納品された。
なにこれ?

ほーーー すげー
—————
Android向けのアプリケーションをAndroid端末にインストールできる形式にパッケージにしたもの、もしくはそのファイルのこと。簡単にいうとapkとは「.apk」という拡張子を持つAndroidアプリケーションの本体ファイルのことである。ただし、apkファイル自体はZIP形式で圧縮されており、その中にはアプリケーションの動作に必要なさまざまなファイルが納められている。apkのファイル形式でなければAndroid端末にアプリケーションをインストールすることができないため、Google Playなどで配信されているアプリケーションは、すべてapkファイルとして公開されている。通常はGoogle Play等からAndroid用アプリケーションをダウンロード・インストールするが、端末の設定によってはインターネット上のWebサイトから直接apkファイルをダウンロードし、端末にインストールすることもできる。また、Androidアプリケーション「Root Uninstaller」を使用すると、すでにインストールされているアプリケーションのapkファイルを作成することも可能である。さらに、Androidアプリケーション「appsender」を使用すると、Androidアプリケーションのapkファイルをメールに添付して送信したり、EvernoteやGoogleDriveなどにも送ったりすることができる。アプリケーションを起動すると端末内のアプリケーションをスキャンし、メールソフトやクラウドを利用してapkファイルが送信される仕組みになっている。SDカード内のapkファイルを簡単に管理するためには、Androidアプリケーション「Apk Manager」が便利である。Apk Manager はSDカード内のapkファイルを自動的にリストアップし、簡単にインストール・アンインストールする事ができるため、Google Playにはないアプリケーションの管理も容易になる。
————–

android studioでapkファイルをopenすると、ファイルを開けるが、これでよいのか?

[Build]→[Generate Signed APK…] でapkファイルを作成できる、ってところまでわかった。

spinnerの値を12星座にする

app -> res -> values -> arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="items">
        <item>おひつじ座</item>
        <item>おうし座</item>
        <item>ふたご座</item>
        <item>かに座</item>
        <item>しし座</item>
        <item>おとめ座</item>
        <item>てんびん座</item>
        <item>さそり座</item>
        <item>いて座</item>
        <item>やぎ座</item>
        <item>みずがめ座</item>
        <item>うお座</item>
    </string-array>
</resources>

ちゃんと反映されています。

textViewを追加します。

ktのsetOnClickListenerの中で、spinnerの値を取得して、それ以外の値を配列からランダムに取得して表示させたいですな。

paletteのspinnerを使う

activity_main.xml

<Spinner
        android:id="@+id/spinner"
        android:layout_width="368dp"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="269dp"
        android:entries="@array/items"/>

valuesにarrays.xmlを作ります。
app->res->values->arrays.xml
なぜ、「arrays」と複数形になるのでしょうか?命名規則がわかりませんが、とりあえず進みます。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="items">
        <item>item1</item>
        <item>item2</item>
        <item>item3</item>
        <item>item4</item>
        <item>item5</item>
        <item>item6</item>
        <item>item7</item>
        <item>item8</item>
        <item>item9</item>
    </string-array>
</resources>

とりあえず、spinnerは表示されましたが、相変わらずpositionが x, y:0, 0 になってしまいます。

activity_main.xmlでspinnerに”parent”を追加

<Spinner
        android:id="@+id/spinner"
        android:layout_width="368dp"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="269dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        android:entries="@array/items"/>

そうそう、これ、やりたかったの^^

androidで恋愛運を占おう

kotolinで☆と★の配列をつくります。

getOmikujiButton.setOnClickListener {
            val results = arrayOf("大吉","吉","中吉","小吉","凶")
            val l_results = arrayOf("☆★★★★","☆☆★★★","☆☆☆★★","☆☆☆☆★","☆☆☆☆☆")
            val n = Random().nextInt(results.count())
            val ln = Random().nextInt(l_results.count())

            if(n == 0){
                resultTextView.setTextColor(Color.RED)
            } else{
                resultTextView.setTextColor(Color.parseColor("#808080"))
            }

            resultTextView.text = results.get(n)
            loveText.text = l_results.get(ln)
            // Code here executes on main thread after user presses button
        }
    }

では、続けて、仕事運、金運を作っていきましょう。

getOmikujiButton.setOnClickListener {
            val results = arrayOf("大吉","吉","中吉","小吉","凶")
            val l_results = arrayOf("☆★★★★","☆☆★★★","☆☆☆★★","☆☆☆☆★","☆☆☆☆☆")
            val w_results = arrayOf("☆★★★★","☆☆★★★","☆☆☆★★","☆☆☆☆★","☆☆☆☆☆")
            val m_results = arrayOf("☆★★★★","☆☆★★★","☆☆☆★★","☆☆☆☆★","☆☆☆☆☆")
            val n = Random().nextInt(results.count())
            val ln = Random().nextInt(l_results.count())
            val wn = Random().nextInt(w_results.count())
            val mn = Random().nextInt(m_results.count())

            if(n == 0){
                resultTextView.setTextColor(Color.RED)
            } else{
                resultTextView.setTextColor(Color.parseColor("#808080"))
            }

            resultTextView.text = results.get(n)
            loveText.text = l_results.get(ln)
            workText.text = w_results.get(wn)
            moneyText.text = m_results.get(mn)
            // Code here executes on main thread after user presses button
        }

こんなに占ってなにがしたいのかわかりませんが、OK!

次は相性のいい星座
ドロップダウンは、androidだと、「spinner」というらしいですね。

早速つかってみましょう。

なんじゃーこりゃー