Androidでは、カスタムレイアウトを作成しています。それは私が配置、回転、そして正確に測定する必要があるビューを含んでいます。View.setX()、View.setRotation()、View.getWidth()はどのように相対的に動作しますか?
右に10ピクセル、下に10ピクセル、次に45度回転した10x10ピクセルのビューがある場合、ビューの測定自体はどのくらい広がり、正確にその位置が決まりますか?
view.setX(10)
view.setY(10)
view.setRotation(45)
view.measure(widthSpec, heightSpec)
それでも10pxを幅として報告するのか、それともローテーションを考慮に入れますか? x座標とy座標が回転したコーナーに揃っているのか、それとも固定されていますか?
の更新と同じであり、
translationX
とtranslationY
を設定します相対的な絶対値:相対的な値:https://developer.android.com/reference/android/view/View.html#setX(float) –これは視覚的に**翻訳と同じことをしますが、答えは、これらの2つの間に概念的な違いがあります。 'x'と' y'を変更することは、次の 'onLayout'呼び出しまで有効です。レイアウトプロセス中に、親プロセスは 'x'と' y'を再計算するので、それらを再度更新する必要があります。 'translationX'と' translationY'はレイアウト全体で同じままです –
Hmm。私は反対する必要があります。私はView.javaのソースをチェックし、 'setX()'は 'setTranlationX()'を直接呼び出します:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/view/View.java #L11802 –