Android KTXの例


今年の1月には、グーグルの2018年I/O大会が5月8日から5月10日までカリフォルニアの山景城の海岸線露天劇場で行われると報道された.グーグルはこのほど、今回の開発者大会の具体的なスケジュールを発表した.詳細については、Android、拡張現実(AR)、仮想現実(VR)の3つのテーマをめぐって展開される.今回の開発者大会の初日、会議はGoogle Play、Androidインスタントアプリケーション、Android KTX、Android Kotlinの開発と入門、Android、Android apps for Chrome OS、Android Wearの最新進展から行われる.Android KTXに関する知識について解説すると、GoogleのKotlinへの重視度も高まっていることがわかります.Android KTXの紹介については、私の前の紹介を訪問してください.http://blog.csdn.net/xiangzhihong8/article/details/79277879
≪インスタンス|Instance|emdw≫
文字列をURIに変換
通常はUriである.parse(uriString)ですが、Android KTXは文字列に拡張関数を追加し、文字列をより自然にURIに変換します.例:
// Kotlin
val uri = Uri.parse(uriString)

// android KTX
val uri = uriString.toUri()

SharedPreferences
SharedPreferencesもよく使われていますが、Android KTXを使うとコードの紹介も少なくありません.
// kotlin
sharedPreferences.edit()
    .putBoolean("key", value)
    .apply()

// KTX
sharedPreferences.edit {
    putBoolean("key", value)
}

Path
例えば、2つの経路間の距離は100 pxに変化する.
// kotlin
val pathDifference = Path(myPath1).apply {
    op(myPath2, Path.Op.DIFFERENCE)
}

canvas.apply {
  val checkpoint = save()
  translate(0F, 100F)
  drawPath(pathDifference, myPaint)
  restoreToCount(checkpoint)
}

// KTX
val pathDifference = myPath1 - myPath2

canvas.withTranslation(y = 100F) {
    drawPath(pathDifference, myPaint)
}

ViewのonPreDrawリスニング
次の例では、Android KTXがなければ、ビュー内のonPreDrawのコールバックがトリガーされます.かなりのコードを書く必要があります.
// kotlin
view.viewTreeObserver.addOnPreDrawListener(
    object : ViewTreeObserver.OnPreDrawListener {
        override fun onPreDraw(): Boolean {
            viewTreeObserver.removeOnPreDrawListener(this)
            actionToBeTriggered()
            return true
        }
    })

// KTX
view.doOnPreDraw {
     actionToBeTriggered()
}

Android統合
Android KotlinプロジェクトでAndroid KTXの使用を開始するには、アプリケーションモジュールbuild.gradleのスクリプトファイルに次の構成スクリプトを追加します.
repositories {
    google()
}

dependencies {
    implementation 'androidx.core:core-ktx:0.1'
}

げんりぶんせき
上のAndroid KTXでは、主にKotlinのいくつかの特性を使用していますが、以下ではこれらの特性について簡単に説明します.
Extensions
KotlinのExtensionsでは、以下のアドレスでより多くの知識を得ることができます.http://kotlinlang.org/docs/reference/extensions.html.例えばuriのパッケージはこの特性を利用している.
inline fun String.toUri(): Uri = Uri.parse(this)

実はStringを拡張してJavaを使えばわかりやすく、以下のように日常開発でも見やすい方法です.
public class StringUtil{

    public static Uri parse(String uriString) {
        return Uri.parse(uriString);
    }
}

Lambdas
Lambdas式と高次関数については、Kotlinを知っている学生にはよく知られていません.次のリンクで詳しく説明します.http://kotlinlang.org/docs/reference/lambdas.html
まずはKTX関連ソースを見てみましょう.まずSharedPreferencesを拡張して、それからこの拡張関数のパラメータは1つの閉パッケージで、関数の最後のパラメータが閉パッケージである場合、関数の括弧は直接省略することができて、それから後ろで閉パッケージをつなげればいいです.
inline fun SharedPreferences.edit(action: SharedPreferences.Editor.() -> Unit) {
    val editor = edit()
    action(editor)
    editor.apply()
}