Androidでレイアウトとビューをいじっています。私のレイアウトは次のようになります。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.mycode.MyView
android:id="@+id/MyView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<LinearLayout
android:id="@+id/leftpane"
android:layout_width="55dp"
android:layout_height="wrap_content"
android:layout_weight="0.95"
android:background="@color/leftpane_background"
android:gravity="center"
android:orientation="vertical"
android:scrollbarStyle="insideOverlay" >
</LinearLayout>
</LinearLayout>
行にコメント<com.mycode.MyView .... />
を付けると、左側の線形レイアウト (id leftpane を持つ) が表示されますが、それ以外の場合は表示されません。左ペインのレイアウト (スクロール ビューのレイアウトなど) の後に別のレイアウトを追加すると、それも表示されません。カスタム ビュー (MyView) を使用すると、他のすべてのレイアウトが消えるのはなぜですか? 私がやりたいことは、アプリケーションの背景にカスタム ビューを作成し、そこで画像を表示したり、スクロール ビューやボタンなどの背景に他のビューを表示したりすることです。これは MyView クラスのコードです。アクティビティの背景に画像を描画する必要があることに注意してください(背景全体に、明らかにアクションバーは含まれません):
/**
*/
class MyView extends View
{
TextPaint text_paint;
Paint paint;
private void InitView()
{
text_paint = new TextPaint( Paint.ANTI_ALIAS_FLAG );
text_paint.setColor( Color.BLACK );
paint = new Paint();
}
public MyView(Context context)
{
super(context);
InitView();
}
public MyView(Context context, AttributeSet attrs)
{
super(context, attrs);
InitView();
}
public MyView(Context context, AttributeSet attrs, int defaultStyle)
{
super(context, attrs, defaultStyle);
InitView();
}
@Override
protected void onDraw( Canvas canvas )
{
super.onDraw(canvas);
//int w, h;
//w = canvas.getWidth();
//h = canvas.getHeight();
//paint.setColor( Color.WHITE );
//canvas.drawRect(0, 0, w-1, h-1, paint );
//canvas.drawText( "ciao", 100, 100, text_paint);
}
};