【解決方法】andoridでカスタムビューを作成する方法を知りたい


こんにちは皆さん、私は自分のプロジェクトのカスタム ビューを作成する必要があります。アプリのインショット ビデオ エディターがあり、ユーザーがビデオにステッカーを追加するのに役立つステッカー セクションがあり、彼らが使用したのと同じユーザー インターフェイスを作成する必要があります。アイデアや提案がある場合は、私を助けてください。アイデアや提案は私にとって役立つ可能性があります。

郵便物 :- [DELETED]@gmail.com

私が試したこと:

水平スクロールビューを使用して同じUIを実現しましたが、必要なビューの解決策を取得できません

解決策 1

役立つ情報がたくさんあります。 Android の記事[^]、そしてGoogleは明らかにさらに多くを見つけることができます。

解決策 2

Android でカスタム ビューを作成するには、次の手順に従います。

1. View クラスを拡張する新しいクラスを作成します。
2. クラスで、ビューの再描画が必要になるたびに呼び出される onDraw() メソッドをオーバーライドします。 これは、カスタム ビューを描画するコードを配置する場所です。
3. onDraw() メソッドに渡された Canvas オブジェクトを使用して、drawRect()、drawCircle()、drawText() などのメソッドを使用してビューを描画できます。
4. ビューの外観をカスタマイズする場合は、ビューの XML レイアウトでカスタム属性を定義し、View クラスの init() メソッドに渡された TypedArray オブジェクトを使用してビュー クラスでそれらの値を取得できます。
5. ビューのサイズを指定する onMeasure()、ユーザー入力を処理する onTouchEvent()、破棄および復元時にビューの状態を保存する onSaveInstanceState() などの他のメソッドをオーバーライドすることもできます。

ビューの幅の半分に等しい半径の円を描くカスタム ビュー クラスの例を次に示します。

public class CircleView extends View {<br />
<br />
    private Paint paint;<br />
<br />
    public CircleView(Context context) {<br />
        super(context);<br />
        init();<br />
    }<br />
<br />
    public CircleView(Context context, AttributeSet attrs) {<br />
        super(context, attrs);<br />
        init();<br />
    }<br />
<br />
    public CircleView(Context context, AttributeSet attrs, int defStyleAttr) {<br />
        super(context, attrs, defStyleAttr);<br />
        init();<br />
    }<br />
<br />
    private void init() {<br />
        paint = new Paint();<br />
        paint.setColor(Color.RED);<br />
        paint.setStyle(Paint.Style.FILL);<br />
    }<br />
<br />
    @Override<br />
    protected void onDraw(Canvas canvas) {<br />
        int width = getWidth();<br />
        int height = getHeight();<br />
        int radius = width / 2;<br />
        canvas.drawCircle(width / 2, height / 2, radius, paint);<br />
    }<br />
}<br />

このカスタム ビューをレイアウト XML で使用するには、次のように定義できます。

<com.example.app.CircleView<br />
    android:layout_width="wrap_content"<br />
    android:layout_height="wrap_content" /><br />

コメント

タイトルとURLをコピーしました