現在のところ、カスタムのViewGroupクラスを実装しています。これは、アイテム(描画可能なボタン)を画面全体に均等に斜めに配置しようとしています。画面の斜め方向のレイアウトビュー
残念なことに、アイテムが大きすぎると、画面上にすべてが収まるように重なりがちです。
私は既に既存のレイアウト(API8 +)でこれを達成する簡単な方法があると思っています。または、単純なものがあれば、ViewGroupクラスで変更して、重なりを避けるために子ビューを小さくすることができます。 (このようなそれぞれの子が重複せずに均等にレイアウトに必要な正確なサイズを表示することなど)ここで
は私onMeasureクラスがある
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
measureChildren(widthMeasureSpec, heightMeasureSpec);
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
setMeasuredDimension(width, height);
}
EDIT(特別何もしていない子どもたちがthemselfsを測定させる。):私はonMeasure変更した場合は、手動で子供を特定の幅/高さに測定することができます。子ビュー(またはそのドロウアブル)が実際に測定の内部に収まるように実際にスケールするようなことはありません。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
int newChildWidth = width/getChildCount();
int newChildHeight = height/getChildCount();
final int size = getChildCount();
for (int i = 0; i < size; ++i) {
View child = getChildAt(i);
child.measure(MeasureSpec.EXACTLY | newChildWidth, MeasureSpec.EXACTLY | newChildHeight);
}
setMeasuredDimension(width, height);
}
あなたはそれぞれの子供のために 'ImageView'を使用していますか?もしそうなら 'ImageView.ScaleType'を試してみてください。 – techiServices
申し訳ありませんが、「ImageButton」と言ってください。 – techiServices