Как добавить imageView в центре customView? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть собственное представление, которое является кругом. Вот код для моего CircleView:

    public class CircleView extends View {

     private static final int START_ANGLE_POINT = 90;

     private final Paint paint;
     private final RectF rect;

     private float angle;

     public CircleView(Context context, AttributeSet attrs) {
        super(context, attrs);

         final int strokeWidth = 40;

         paint = new Paint();
         paint.setAntiAlias(true);
         paint.setStyle(Paint.Style.STROKE);
         paint.setStrokeWidth(strokeWidth);
         //Circle color
         paint.setColor(Color.RED);

         rect = new RectF(strokeWidth, strokeWidth, 1000 + strokeWidth, 1000 + strokeWidth);

         //Initial angle is zero
         angle = 0;
     }

     @Override
     protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
         canvas.drawArc(rect, START_ANGLE_POINT, angle, false, paint);
     }

     public float getAngle() {
         return angle;
     }

     public void setAngle(float angle) {
         this.angle = angle;
     } }

и вот как я это объявляю в макете xml действия:

    <com.my_package.ui.recording.CircleView
            android:id="@+id/circleView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

Все стандартные вещи. Вот так выглядит мое пользовательское изображение

enter image description here

Теперь я хочу разместить изображение в центре круга. Кто-нибудь знает, как мне этого добиться?

В идеале это то, чем я хотел бы закончить: enter image description here

Заранее спасибо.

1 Ответ

1 голос
/ 25 июня 2019

Если вы не используете ImageView и действительно просто хотите нарисовать растровое изображение в центре, тогда взгляните на метод canvas * drawBitmap .Это позволит вам нарисовать его как угодно / где угодно.

...