前提・実現したいこと
AndroidのViewをカスタムして、Activityに表示させたいのですが、
全面に表示されてしまいます。
①上半分とか、相対位置を指定して表示することは可能でしょうか?
②作成したクラスにメソッドを追加して、背景の色を変化させることは可能でしょうか?
発生している問題・エラーメッセージ
カスタムViewが全面表示されてしまう
該当のソースコード
activity_main.xml
1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context=".MainActivity"> 8 9 10 <View 11 android:id="@+id/view1" 12 android:layout_width="0dp" 13 android:layout_height="0dp" 14 android:layout_marginBottom="500dp" 15 app:layout_constraintBottom_toBottomOf="parent" 16 app:layout_constraintEnd_toEndOf="parent" 17 app:layout_constraintStart_toStartOf="parent" 18 app:layout_constraintTop_toTopOf="parent" /> 19 20</androidx.constraintlayout.widget.ConstraintLayout>
java
1package com.example.myapplication; 2 3import androidx.appcompat.app.AppCompatActivity; 4 5import android.os.Bundle; 6 7public class MainActivity extends AppCompatActivity { 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.activity_main); 13 14 // ① MyViewのインスタンスを生成. 15 MyView mView = new MyView(this); 16 17 // ② mViewをWindowに貼り付け. 18 setContentView(mView); 19 } 20}
java
1package com.example.myapplication; 2 3import android.content.Context; 4import android.graphics.Canvas; 5import android.graphics.Color; 6import android.view.View; 7 8/** 9 * 描画用のクラス. 10 */ 11class MyView extends View { 12 13 /** 14 * コンストラクタ. 15 * 16 * @param context コンテキスト 17 */ 18 public MyView(Context context) { 19 super(context); 20 setFocusable(true); 21 22 } 23 24 /** 25 * 描画処理を行う. 26 */ 27 @Override 28 protected void onDraw(Canvas canvas ) { 29 super.onDraw(canvas); 30 31 // 背景色を設定 32 canvas.drawColor(Color.BLUE); 33 34 } 35}
試したこと
上記のコードでViewが全面表示されてしまう
補足情報(FW/ツールのバージョンなど)
Android Studio 4.0.0
API 28
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/05 02:18
2020/06/05 17:22
2020/06/06 00:54
2020/06/06 02:10