申し訳ありませんがタイトルが良好でない場合。私はビューとその次の子を拡大/縮小したいと思います。ビューとその内容を比例して拡大/縮小する方法は?
最も簡単なのはsetScaleX
とsetScaleY
ですが、ビューの境界は変更されずに空白が残ります。チャイルドを含め、高さと幅を手動で変更しようとしましたが、TextViewが含まれている場合は、子の比例サイズを維持するのは難しいです。
それを達成する最善の方法はありますか?
申し訳ありませんがタイトルが良好でない場合。私はビューとその次の子を拡大/縮小したいと思います。ビューとその内容を比例して拡大/縮小する方法は?
最も簡単なのはsetScaleX
とsetScaleY
ですが、ビューの境界は変更されずに空白が残ります。チャイルドを含め、高さと幅を手動で変更しようとしましたが、TextViewが含まれている場合は、子の比例サイズを維持するのは難しいです。
それを達成する最善の方法はありますか?
以下の方法を使用して、ビューとそれに続く子を拡大/縮小できます。それはあなたがそれぞれのレイアウトとその子の比例高さと幅を計算する必要がある.AND、あなたはマージンを計算し、各ビューにMarginLayoutParms
を設定することができます。このため
public static void scaleView(View view, float scaleX, float scaleY) {
if (view instanceof ViewGroup) {
int viewCount = ((ViewGroup) view).getChildCount();
for (int i = 0; i < viewCount; i++) {
scaleView(((ViewGroup) view).getChildAt(i), scaleX, scaleY);
}
}
view.setScaleX(scaleX);
view.setScaleY(scaleY);
}
を助けることができると思います。
高さと幅を変更するたびに、親のレイアウトの高さと幅に比例した高さと幅を計算し、それに応じて動的に比例計算し、高さと幅と余白を設定します。