Android浮动按钮未显示

时间:2016-04-08 20:47:37

标签: android button canvas floating

我尝试使用画布制作绘图页面,并在角落添加浮动按钮以执行某些操作。但它没有出现。 这是我的课程

DrawView.java

public class DrawView extends View implements View.OnTouchListener {
private List<Point> points = new ArrayList<>();
private Paint paint = new Paint();

public DrawView(Context c) {
    super(c);
    setFocusable(true);
    setFocusableInTouchMode(true);
    this.setOnTouchListener(this);
    paint.setColor(Color.BLACK);
}

@Override
public void onDraw(Canvas canvas) {
    for (Point point : points) {
        canvas.drawCircle(point.x, point.y, 30, paint);
    }
}

public boolean onTouch(View view, MotionEvent event) {
    Point point = new Point();
    point.x = event.getX();
    point.y = event.getY();
    points.add(point);
    invalidate();
    return true;
}}

主要活动

public class DrawingPage extends AppCompatActivity {
private DrawView drawView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_drawing_page);
    drawView = new DrawView(getApplicationContext());
    drawView.setBackgroundColor(Color.WHITE);
    setContentView(drawView);
    drawView.requestFocus();
}}

XML

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="reminder.com.picsartdrawing.DrawingPage">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/myFAB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        app:elevation="4dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

但浮动按钮没有出现,任何解决方案? Screenshot

EDIT !!! 在Activity的onCreate方法中,我已经改变了这一点,现在我已经用按钮绘制了画布页面。

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
        drawView = new DrawView(getApplicationContext());
        drawView.setBackgroundColor(Color.WHITE);
        drawView.requestFocus();
        assert layout != null;
        layout.addView(drawView);

2 个答案:

答案 0 :(得分:4)

onCreate()中,您使用setContentView()“主要”视图替换了2次,因此请尝试使用此选项:

setContentView(R.layout.activity_drawing_page);

答案 1 :(得分:1)

您需要在活动类的onCreate方法中添加它:

FloatingActionButton fab = (FloatingActionButton) findViewById (R.id.fab);
        fab.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick (View view) {
                Snackbar.make (view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction ("Action", null).show ();
            }
        });