2016-07-10 8 views
0

ペイントとキャンバスのインスタンスがフラグメントビューにあり、自由に描画できるようにしたいと考えています。アンドロイド:フラグメントビューの上にペイントが表示されない

問題:私のフラグメントビューの背景の上にペイントしようとしている私の円形の形状が正しく表示されません。円がフラグメントの後ろに描かれているかのようにクリップされています。

以下、オレンジ色の図は私の断片とは別のものですが、そこに青い円が見えるとは思われません。しかし、白い見方は私の断片であり、青い円がその上に描かれることを期待しています。代わりに、私は、白いフラグメントビュー内でクリップされた青い円(四角形のように見える)を見る。このビューのandroid:background xml属性を設定していない場合でも、青い円がクリップされて表示されます。

キャンバスシェイプをフラグメントビュー(重ねて表示)の上に表示するには、何を変更する必要がありますか?

FragmentNeckDisplayMenu.java

public class FragmentNeckDisplayMenu extends Fragment { 
    private static View v; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     v = inflater.inflate(R.layout.menu_fragment_neck_display,container,false); 

     //Configure Paint Canvas 
     LinearLayout paintSurface = (LinearLayout)v.findViewById(R.id.canvas); 
     paintSurface.addView(new NeckGlow(getActivity())); 
    } 
    //paint test 
    class NeckGlow extends View { 
     Paint mPainter = new Paint(Paint.ANTI_ALIAS_FLAG); 

     public NeckGlow(Context context) { 
      super(context); 
     } 

     @Override 
     public void onDraw(Canvas canvas) { 
      super.onDraw(canvas); 
      mPainter.setColor(Color.BLUE); 
      mPainter.setAlpha(255); 
      canvas.drawCircle(25, 900, 200, mPainter); 
     } 
    } 
} 

menu_fragment_neck_display.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/canvas" 
    android:background="#FFFFFF"> 
    <Button 
     android:id="@+id/menuIcon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="64dp" 
     android:text="Menu" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_gravity="bottom" /> 
</LinearLayout> 

答えて

0

あなたはオリエンテーション水平(デフォルト)とLinerLayoutを使用しています。つまり、キャンバスはバットンの隣にレイアウトされています。 FrameLayoutを使用して、キャンバスにする必要があります。

関連する問題