コード public class MainActivity extends Activity{ private FrameLayout frameLayout; CanvasView cv; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); frameLayout = new FrameLayout(this); frameLayout = (FrameLayout)findViewById(R.id.FrameLayout1); frameLayout.setBackgroundColor(Color.BLACK); cv = new CanvasView(this); setContentView(cv); } }
コード public class CanvasView extends View{ Paint paint = new Paint(); int x = 400, y = 1000; public CanvasView(Context con) { super(con); } protected void onDraw(Canvas canvas){ paint.setColor(Color.RED); paint.setStrokeWidth(10); canvas.drawPoint(x, y, paint); } }
コード <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/FrameLayout1" 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="com.example.fireworks.MainActivity" > </FrameLayout>
背景を黒にして、そこに赤色の点を描画したいのですが、上のプログラムだとうまくいきません。
上のプログラムのままだと赤の点が出るだけで背景は白色です。
MainActivityクラスの
cv = new CanvasView(this);
setContentView(cv);
を取り除くと背景は黒くなりますが、赤い点は出ません。
なので
cv = new CanvasView(this);
setContentView(cv);
を書くことによって「赤い点を書く」という動作が「背景を黒くする」という動作を上書きしているのだと思います。
これを両方満たすようにするにはどうすればいいのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/31 00:26
2016/03/31 00:42
2016/03/31 02:08
2016/03/31 02:12
2016/03/31 02:28 編集
2016/03/31 02:43
2016/03/31 02:59