0

測定して適切にサイズ変更するためだけに、カスタム LinearLayout を作成しています。

public class Frame extends LinearLayout
{
private int width;
private int height;
private Context context;

public Frame(Context context, AttributeSet attrs)
{
    super(context, attrs);
    this.context=context;
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
    int height = MeasureSpec.getSize(heightMeasureSpec);
    int width = MeasureSpec.getSize(widthMeasureSpec);
    int newwidth=MeasureSpec
                           .makeMeasureSpec(height*480/720,MeasureSpec.EXACTLY);
    super.onMeasure(newwidth, heightMeasureSpec);
}
}

それは完全に機能しますが、メジャーが変更される前の場所に位置を保持しているため、水平方向に中央に配置されていません。カスタム LinearLayout の設定をオーバーライドして、水平方向の中央に表示するにはどうすればよいですか?

これは私がxmlファイルでそれを呼び出す方法です:

com.myproject.main.Frame 
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/button"
android:layout_marginBottom="10dp"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="480" >
4

0 に答える 0