相对布局和自定义视图

时间:2017-02-14 11:29:30

标签: android canvas layout

我有两个视图如图所示,第一个我画了一个圆圈和线条,第二个我有很多按钮,我想叠加两个视图,这样每条线指向一个按钮

enter image description here "Canvas"

[enter image description here] 2

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new MyView(this));
}
public class MyView extends View {
    public MyView (Context context) {
        super (context) ;

    }
@Override
    protected void onDraw (Canvas canvas){
super.onDraw(canvas);
int x = getWidth();
int y = getHeight();
int radius ;
radius = 50 ;
Paint paint = new Paint () ;
Paint paint1 = new Paint () ;
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
canvas.drawPaint(paint);
paint.setColor(Color.BLACK);
canvas.drawCircle(x / 2, y / 2, radius, paint);

int margin = 500;
int margin1 = 300;
int top = 0 + margin;
int bottom = canvas.getHeight() - margin;
int left = 0 + margin1;
int right = canvas.getWidth() - margin1;
int centerX = x / 2;
int centerY = y / 2;

canvas.drawLine(centerX, top, centerX, bottom,paint1);


canvas.drawLine(left, centerY, right, centerY,paint1);

}}}

RelativeLayout 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">


<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/button1" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_alignParentStart="true"
    android:id="@+id/button2" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/button2"
    android:layout_alignParentEnd="true"
    android:id="@+id/button3" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignStart="@+id/button1"
    android:id="@+id/button4" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button1"
    android:layout_alignParentStart="true"
    android:layout_marginTop="49dp"
    android:id="@+id/button5" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/button5"
    android:layout_alignStart="@+id/button3"
    android:id="@+id/button6" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button4"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="58dp"
    android:id="@+id/button7" />

 <Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button7"
    android:layout_alignParentEnd="true"
    android:id="@+id/button8" />


 </RelativeLayout>

1 个答案:

答案 0 :(得分:0)

这不会起作用吗?它会在中心水平和垂直方向上添加4个按钮,这些按钮位于您绘制的线条的末端。

<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">

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/button1" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_alignParentStart="true"
    android:id="@+id/button2" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_alignParentEnd="true"
    android:id="@+id/button3" />

<Button
    android:text="Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/button4" />

 </RelativeLayout>