複数のカスタムビューを描画する

セルジオペナフィエル

レイアウトに複数のカスタムビューを描画しようとしていますが、最初に追加したビューのみが描画されます。

私のカスタムビュークラスは次のとおりです。

public ButtonView(Context context, int k) {
    super(context);
    this.setX(20+k*80);
    init();
}

private void init(){
    paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setColor(0x99ffffff);
}

@Override
protected void onDraw(Canvas cv){
    cv.drawText(""+getX(), 0, 80, paint);
}

どのビューが描画されているかを知るために、x座標のテキストを表示しています。

これはonCreate私の主な活動のコードです

blay = (LinearLayout) this.findViewById(R.id.buttonslayout);
for(int k=0; k<10; k++){
    ButtonView e = new ButtonView(this,k);
    blay.addView(e);
}

アプリケーションを実行すると、最初のビューのみが描画されます。「20.0」が正しい位置に白で表示されますが、残りのビューが表示されません。アプリをデバッグすることで、ビューのインスタンスが作成されたのに、何らかの理由で表示されていないことがわかりました。またinvalidateonMeasureメソッドを使用してオーバーライドしようとしましたが、それでも機能しません。

AnswerBot

カスタムビューを変更しました。これが機能しているかどうかを確認してください。コードの主な問題は、1つのビューが画面全体を占めていたことだと思います。だから私はonMeasure関数をオーバーライドしました

    package com.example.stack2;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.View;

public class ButtonView extends View{
    public ButtonView(Context context, int k) {
        super(context);
        //this.setX(20+k*80);
        init();
    }

    public ButtonView(Context context, AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        // TODO Auto-generated constructor stub
    }

    public ButtonView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        // TODO Auto-generated constructor stub
    }

    public ButtonView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public ButtonView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    Paint paint;
    private void init(){
        paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(20); 
    }
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // TODO Auto-generated method stub
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        //e.measure(0, 0);
        getLayoutParams().width=100;
    }
    @Override
    protected void onDraw(Canvas cv){
        super.onDraw(cv);

        cv.drawText(""+getX(), 0, cv.getHeight()/2, paint);
    }
}

また、線形レイアウトの方向が水平であることを確認してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムビューを描画する適切な方法は?

分類Dev

カスタムUIViewのカスタムサブビューを再描画する方法

分類Dev

1 つのカスタム アダプターを使用する複数のリストビューの場合

分類Dev

DocTemplateのMFCメニューをカスタム描画する方法

分類Dev

単一のリストビューに複数のカスタム配列リストを入力する

分類Dev

Android:プログラムでカスタムビューを描画する

分類Dev

カスタムビューで描画可能なリソースを追加する方法

分類Dev

Androidカスタムビューは複数の属性を取得します

分類Dev

マップビューでカスタム注釈を使用して複数の場所を表示する方法

分類Dev

UIBezierPathを使用してカスタムビューを描画すると、非対称の形状になります

分類Dev

異なるデータを持つ複数のビューの代わりにAndroidカスタムビューを作成する

分類Dev

カスタムビューは他のビューの上に描画します

分類Dev

imageviewの上に(重複する)カスタムビュー

分類Dev

カスタムの複雑なビューでonDraw()を最適化する

分類Dev

Androidカスタムビューを使用してリアルタイムでプロットを描画する

分類Dev

Androidカスタムビューを使用してリアルタイムでプロットを描画する

分類Dev

ModelViewSetでカスタムビューの引数を使用する方法

分類Dev

カスタムビューを使用してビットマップを描画する方法

分類Dev

複数選択のカスタムリストビュー

分類Dev

カスタムビューのアイテムを取得する

分類Dev

カスタムアダプタを使用してリストビューで複数のアイテムを選択/強調表示する-Android

分類Dev

カスタムビューのフレームをdrawRectで描画された画像に合わせます

分類Dev

カスタムビューで描画する際のRTLロケールのサポート

分類Dev

Androidで複数の選択肢があるカスタムリストビューでチェック済みアイテムIDを取得する方法

分類Dev

Androidで複数の選択肢があるカスタムリストビューでチェック済みアイテムIDを取得する方法

分類Dev

コアテキスト-ObjectiveCのカスタムビューに簡単なテキストを描画します

分類Dev

カスタムリストビューのカスタムアダプタクラスで複数の配列値を渡す方法は?

分類Dev

フェニックスの複数のコントローラーでカスタムビューを使用する

分類Dev

複数の色でテキストを描画するためのカスタムQStyledItemDelegate

Related 関連記事

  1. 1

    カスタムビューを描画する適切な方法は?

  2. 2

    カスタムUIViewのカスタムサブビューを再描画する方法

  3. 3

    1 つのカスタム アダプターを使用する複数のリストビューの場合

  4. 4

    DocTemplateのMFCメニューをカスタム描画する方法

  5. 5

    単一のリストビューに複数のカスタム配列リストを入力する

  6. 6

    Android:プログラムでカスタムビューを描画する

  7. 7

    カスタムビューで描画可能なリソースを追加する方法

  8. 8

    Androidカスタムビューは複数の属性を取得します

  9. 9

    マップビューでカスタム注釈を使用して複数の場所を表示する方法

  10. 10

    UIBezierPathを使用してカスタムビューを描画すると、非対称の形状になります

  11. 11

    異なるデータを持つ複数のビューの代わりにAndroidカスタムビューを作成する

  12. 12

    カスタムビューは他のビューの上に描画します

  13. 13

    imageviewの上に(重複する)カスタムビュー

  14. 14

    カスタムの複雑なビューでonDraw()を最適化する

  15. 15

    Androidカスタムビューを使用してリアルタイムでプロットを描画する

  16. 16

    Androidカスタムビューを使用してリアルタイムでプロットを描画する

  17. 17

    ModelViewSetでカスタムビューの引数を使用する方法

  18. 18

    カスタムビューを使用してビットマップを描画する方法

  19. 19

    複数選択のカスタムリストビュー

  20. 20

    カスタムビューのアイテムを取得する

  21. 21

    カスタムアダプタを使用してリストビューで複数のアイテムを選択/強調表示する-Android

  22. 22

    カスタムビューのフレームをdrawRectで描画された画像に合わせます

  23. 23

    カスタムビューで描画する際のRTLロケールのサポート

  24. 24

    Androidで複数の選択肢があるカスタムリストビューでチェック済みアイテムIDを取得する方法

  25. 25

    Androidで複数の選択肢があるカスタムリストビューでチェック済みアイテムIDを取得する方法

  26. 26

    コアテキスト-ObjectiveCのカスタムビューに簡単なテキストを描画します

  27. 27

    カスタムリストビューのカスタムアダプタクラスで複数の配列値を渡す方法は?

  28. 28

    フェニックスの複数のコントローラーでカスタムビューを使用する

  29. 29

    複数の色でテキストを描画するためのカスタムQStyledItemDelegate

ホットタグ

アーカイブ