[Android]カスタムビューxmlから呼び出す

3096 ワード

カスタムビューの説明については、ゴンサムのAndroidプログラミングがよりよく説明されています.

ビューバーのカスタマイズ


Androidが提供するTextView、ImageView、ListView以外のビューを使用して画面構成を試みた場合、独自のビューが作成されます.
  • 基本作成方法
  • APIが提供するビューを使用して、ビュー
  • を少し変更します.
  • 複数のビューの組み合わせ、1回の出力
  • 既存のAPIに存在しないビュー
  • ペイントオブジェクトでシェーディングしたビューを作成しようとしました.
    Fragmentでのビューの描画とシェーディング
    カスタムビューを作成する目的に応じて、extendsに対してTextView、View Group、Viewを実行できますが、私はextends Viewを実行します.

    生成者


    カスタムビューを作成するときは、ジェネレータセクションに注意してください.
    アクティブビューで作成したカスタムビューを使用するには、javaコードを使用して直接ビューを作成するか、レイアウトxmlに登録する必要があります.javaコードを使用して直接作成する場合は、ジェネレータを定義するだけですが、レイアウトxmlファイルに登録して他のビューと一緒に配置する場合は、3つのジェネレータを同時に定義する必要があります.
    ジェネレータセクション
    public ColorOnPicView(Context context) {
            super(context);
        }
        public ColorOnPicView(Context context, AttributeSet attrs){
            super(context,attrs);
    
        }
        public ColorOnPicView(Context context, AttributeSet attrs, int defStyleAttr){
            super(context, attrs, defStyleAttr);
        }
    ビューの目的は、画面に何かを出力することです.画面に出力するにはonDraw()関数を作成する必要があります.
    この関数は、ビューが画面に出力されると自動的に呼び出され、この関数で描画された内容がビュー領域に出力されます.
    シェーディングビューなのでonDraw()で作成:
    @Override
        protected void onDraw(Canvas canvas) {
            paint.setColor(Color.GREEN);
            paint.setStyle(Paint.Style.STROKE);
            paint.setStrokeWidth(50);
            paint.setAlpha(30);     //투명도
            canvas.drawPath(path,paint);
        }
    
    onTouchEvent()で他のタッチイベントを作成する
       @Override
        public boolean onTouchEvent(MotionEvent event) {
    
            //return super.onTouchEvent(event);
            x = (int) event.getX();
            y = (int) event.getY();
    
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    path.moveTo(x, y);
                    break;
                case MotionEvent.ACTION_MOVE:
                    x = (int) event.getX();
                    y = (int) event.getY();
    
                    path.lineTo(x, y);
                    break;
            }
            invalidate();
    
            return true;
        }
    

    レイアウトxmlから呼び出す


    作成したカスタムビューをxmlから呼び出す必要があります.
    xmlから<com.example.ae_android.ui.coloring.ColorOnPicView android:layout_width="wrap_content" android:layout_height="wrap_content" />ビューにバックグラウンド写真を配置する場合は、呼び出されたxmlコードに入力します.
    android:background=""で属性を追加すればよい.