EditText
ズームしたいのですが、 setScaleX
/でスクロールするsetScaleY
とうまくいきます - テキストは正しい位置で編集されています。
しかし、テキストを選択しようとすると、テキストが拡大縮小されていないときのように、選択ハンドルが位置に描画されます。既知のバグです。
ビュー サイズに関連するポップアップ ウィンドウにハンドルが描画されるため、これは予期された結果です。
上のすべてのアクションandroid.widget.Editor
は、そのフィールドを対象としていますprivate TextView mTextView;
。また、リフレクションによって独自のエディターを設定する場合、オーバーライドできないプライベート メソッドをどうすればよいかわかりません。
また、レイアウトで計算されたポップアップ ウィンドウのandroid.widget.Editor.HandleView#HandleView
座標に選択ハンドルが描画されDynamicLayout
ます。
メソッドandroid.text.Layout#getPrimaryHorizontal(int, boolean)
は公開されており、その値は大規模に乗算できますが、そのためにはプライベート メソッドを拡張してオーバーライドする必要がありますandroid.widget.TextView#makeSingleLayout
が、これは問題です。
また、必要なすべてのオーバーライドされたメソッドを使用して独自のレイアウトを実装することもできますが、オーバーライドできるすべてのメソッドは@hide
注釈でマークされており、リフレクションでアクセスできるフィールドはありません。
次のスクリーンショットは、2 倍にスケーリングされた場合に表示されます
PS: タスクのコンテキストは、ピンチ ツー ズーム編集テキストを含むエディターです。サイズの計算によるテキストの再レイアウトは解決策ではありません。それぞれの画面サイズで Portable Document が必要だからです。