画布视图不会低于任何视图

时间:2015-03-24 11:22:52

标签: android android-canvas android-view

我的活动处于LANDSCAPE模式 我正在使用以下代码。

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


<TextView 
       android:id="@+id/sample"
       android:layout_height="80dp"
       android:layout_width="match_parent"
       android:text="saga"/> 
<com.example.sample.Circle
        android:id="@+id/circle"
        android:background="#AD9999"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_below="@id/sample"/>

</RelativeLayout>

Circle.java

public class Circle extends View{

public Circle(Context context) {
    super(context);
    this.context=context;
}

public Circle(Context context, AttributeSet attrs) {
    super(context, attrs);
    this.context=context;
    mOuterDialPaint.setColor(Color.BLUE);

}

@Override
public void onDraw(Canvas canvas)
{

    float width=canvas.getWidth()/2;
    Log.i("Width", ""+canvas.getHeight());
    float dialCenterX=width;
    canvas.drawCircle(dialCenterX, canvas.getHeight(), dialCenterX, mOuterDialPaint);
}
}

因此,画布从指定位置绘制圆形但不在textview下方移动,因此textview将在画布上方出现,而某些部分正在被切割。所以解决这个问题的任何方法??

1 个答案:

答案 0 :(得分:0)

在xml中使用frame-Layout:

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <com.example.sample.Circle
        android:id="@+id/circle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="#AD9999" />


    <TextView
        android:id="@+id/sample"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="top"
        android:gravity="center"
        android:text="your text view" />

</FrameLayout>

Output