Paint

CustomViewのコンストラクタで生成し、canvas.drawTextや、canvas.drawRectなどに渡したPaintオブジェクト。
描画の詳細を指定するには、Paintオブジェクトの各メソッドを使う。

Paint  |  Android Developers
[Android] Canvas Paint で円や矩形を描画する

文字の大きさを指定。
矩形以降は赤にする。
円は輪郭線だけを描画する。

指定された通りになった。
指定された通りになった。

指定された通りになった。
順番に設定が適用されるので、矩形だけではなく円の輪郭線も赤い。
なので、本来は1つ描画するたびにちゃんと指定した方がいい。

Sample/android/Paint/Paint/src/Paint at master · bg1bgst333/Sample · GitHub

Canvas

Canvasは、その名の通りの意味で、ここにテキストや図形や画像を描画できる。

Canvas  |  Android Developers
[Android] Canvas Paint で円や矩形を描画する

前回は、テキストだけだったので、円と矩形も描画する。
CustomView.javaで、

canvas.drawRectで矩形、canvas.drawCircleで円を描画する。

テキスト、矩形、円
テキスト、矩形、円

テキスト、矩形、円が描画されている。

Sample/android/Canvas/Canvas/src/Canvas at master · bg1bgst333/Sample · GitHub

View.onDraw

Viewを継承して、カスタムビューをつくる。

View  |  Android Developers
[Android] Canvas Paint で円や矩形を描画する

View.onDrawで描画できるので、テキストを描画する。
CustomView.javaで、

canvas.drawTextで、"ABCDE"を描画。
MainActivity.javaで、

CustomViewオブジェクトcustomViewを生成し、setContentViewにセットする。

"ABCDE"が描画される。
"ABCDE"が描画される。

"ABCDE"が描画される。

Sample/android/View/onDraw/src/View at master · bg1bgst333/Sample · GitHub

const

constでクラス定数を定義する。

PHP入門 - クラス - とほほのWWW入門

const.phpで、

<html>
  <head>
    <title>class#const</title>
  </head>
  <body>
    <?php
      class TestClass{
        const NUM = 10;
      }
      TestClass::NUM = 20;
      echo TestClass::NUM;
    ?>
  </body>
</html>

クラス名に"::"を付けてその後に定数名を付ける。
定数なので、上記のように代入すると、

エラーが起きて表示されない
エラーが起きて表示されない

エラーが起きて表示されないが、

そんなことしなければ、定数としては、

ちゃんとアクセスできる
ちゃんとアクセスできる

ちゃんとアクセスできる。

Sample/php/class/const/src/class at master · bg1bgst333/Sample · GitHub

GetClassName

GetClassNameで、そのウィンドウのウィンドウクラス名を取得する。

GetClassName function (winuser.h) - Win32 apps | Microsoft Docs

GetClassName.cppで、

ウィンドウクラス名は"GetClassName"。

WM_CREATE時に、

GetClassNameで、ウィンドウクラス名をtszClassNameに格納。

WM_PAINT時に、

TextOutでtszClassNameを描画。

取得出来てる
取得出来てる

取得出来てる。

Sample/winapi/GetClassName/GetClassName/src/GetClassName at master · bg1bgst333/Sample · GitHub

Task<TResult>

Task.Factory.StartNewに指定したラムダ式で値TResultを返すと、Task<TResult>オブジェクトが返ってくる。

https://docs.microsoft.com/ja-jp/dotnet/api/system.threading.tasks.task-1?view=netcore-3.1

これには、非同期処理の戻り値や状態が格納されている。
MainClass.csで、

今回は戻り値を文字列にしている。
10秒経ってから、非同期処理結果t.Resultを確認する。

実行開始時
実行開始時

実行開始時。

10秒後に結果出力
10秒後に結果出力

10秒後に結果出力。
"ABC"が返ってきてた。

Sample/dotnet/Task_TResult/Task_TResult/src/Task_TResult_ at master · bg1bgst333/Sample · GitHub

Parcelable

onSaveInstanceStateのoutStateのBundleに、テキストでいちいち保存するより、オブジェクトごと保存したい。
そういう時はParcelableインターフェースを継承すると、オブジェクトごと保存できる。

Parcelable  |  Android Developers
Parcelableでオブジェクトを一時的に保存する | TechBooster
Y.A.M の 雑記帳: Android Parcelable を使ってクラスのメンバを一時保存

activity_main.xmlで、

TextView3つにButton。
CustomParcelable.javaで、

3つの文字列フィールドを持つParcelableを継承したCustomParcelableを定義。
コンストラクタとwriteToParcelの順番を一致させること。
また、それぞれの取得メソッドも用意。

MainActivity.javaで、

KEY_PARCELABLE_STRINGで、mCustomParcelableのセットと取り出しが出来る。

最初この状態
最初この状態

最初この状態。
button1を押すと、

3つの文字列がセットされる
3つの文字列がセットされる

3つの文字列がセットされる。
Ctril+F11で、

90度回転するが、文字列は消えない。
90度回転するが、文字列は消えない。

90度回転するが、文字列は消えない。

Sample/android/Parcelable/Parcelable/src/Parcelable at master · bg1bgst333/Sample · GitHub