Нарисуйте круг в верхней части изображения - PullRequest
0 голосов
/ 04 января 2012

В настоящее время на представлении у меня есть ImageView и пользовательский класс, который рисует круг на представлении. Он нарисует круг на виде, но он скрыт за видом изображения. Я знаю его там, потому что когда радиус достаточно велик, я вижу небольшой участок, который не находится за изображением. Какой код выведет его на фронт?

РЕДАКТИРОВАТЬ: обнаружил, что проблема выше не проблема. Кажется, что он рисует его только на той части, которая зарезервирована для панели поиска, которую я имею на виде?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.image_process);
     mDraw = new Draw(this);

    addContentView(mDraw, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

    seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
    b = (Button) findViewById(R.id.button1);
    seekBar1.setMax(500);

     seekBar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){

        public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
             mDraw.setCords(500, 500, seekBar1.getProgress());
        }

        public void onStartTrackingTouch(SeekBar seekBar) {
             mDraw.setCords(500, 500, seekBar1.getProgress());              
        }

        public void onStopTrackingTouch(SeekBar seekBar) {
             mDraw.setCords(500, 500, seekBar1.getProgress());              
        }

     });



}

Вот класс Draw:

  package org.DTS.boltsize;

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

public class Draw extends View {
     private int x = 1;
     private int y = 1;
     private int r = 1;


    public Draw(Context context) {

            super(context);

            // TODO Auto-generated constructor stub

    }

public void setCords(int mx, int my, int mr ){
    x = mx;
    y = my;
    r = mr;
}


    protected void onDraw(Canvas canvas) {

            // TODO Auto-generated method stub

System.out.println("Drew :)");


            Paint paint = new Paint();

            paint.setStyle(Paint.Style.FILL);

            paint.setColor(Color.RED);

canvas.drawCircle(x, y, r, paint);
            super.onDraw(canvas);

    }

    public void DrawCirlce(Canvas canvas, int x, int y, int r){
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.STROKE);
        paint.setColor(Color.GREEN);
        canvas.drawCircle(x, y, r, paint);
        super.onDraw(canvas);
    }





}

Вот как это выглядит. Этот красный круг должен покрывать весь экран. enter image description here

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Решается путем преобразования источника в растровое изображение, затем рисования круга на этом растровом изображении и отправки этого окончательного растрового изображения в представление изображения.

0 голосов
/ 04 января 2012

Я бы нарисовал отдельное растровое изображение, которое у вас есть в другом изображении в том же пространстве, что и ваше текущее растровое изображение, возможно, в FrameLayout. Затем вы можете использовать .bringToFront для определения z-порядка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...