[Android]カスタムビューxmlから呼び出す
3096 ワード
カスタムビューの説明については、ゴンサムのAndroidプログラミングがよりよく説明されています.
Androidが提供するTextView、ImageView、ListView以外のビューを使用して画面構成を試みた場合、独自のビューが作成されます.基本作成方法 APIが提供するビューを使用して、ビュー を少し変更します.複数のビューの組み合わせ、1回の出力 既存のAPIに存在しないビュー ペイントオブジェクトでシェーディングしたビューを作成しようとしました.
Fragmentでのビューの描画とシェーディング
カスタムビューを作成する目的に応じて、extendsに対してTextView、View Group、Viewを実行できますが、私はextends Viewを実行します.
カスタムビューを作成するときは、ジェネレータセクションに注意してください.
アクティブビューで作成したカスタムビューを使用するには、javaコードを使用して直接ビューを作成するか、レイアウトxmlに登録する必要があります.javaコードを使用して直接作成する場合は、ジェネレータを定義するだけですが、レイアウトxmlファイルに登録して他のビューと一緒に配置する場合は、3つのジェネレータを同時に定義する必要があります.
ジェネレータセクション
この関数は、ビューが画面に出力されると自動的に呼び出され、この関数で描画された内容がビュー領域に出力されます.
シェーディングビューなのでonDraw()で作成:
作成したカスタムビューをxmlから呼び出す必要があります.
xmlから
android:background=""で属性を追加すればよい.
ビューバーのカスタマイズ
Androidが提供するTextView、ImageView、ListView以外のビューを使用して画面構成を試みた場合、独自のビューが作成されます.
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=""で属性を追加すればよい.
Reference
この問題について([Android]カスタムビューxmlから呼び出す), 我々は、より多くの情報をここで見つけました https://velog.io/@vector13/Android-커스텀-뷰-xml에서-호출시키기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol