android: Как вы масштабируете круг, используя панель поиска? - PullRequest
0 голосов
/ 23 января 2012

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

1 Ответ

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

Здесь приведен код для изменения радиуса круга при достижении полосы поиска

private class test extends View {
    private int radius;

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

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setAntiAlias(false);
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.RED);

        // RectF rect = new RectF(100, 100, 200, 200);
        // canvas.drawRect(rect, paint);
        canvas.drawCircle(50, 50, getRadius(), paint);
        canvas.drawLine(10, 10, 10, 10 + 15, paint);

    }

    /**
     * @param radius the radius to set
     */
    public void setRadius(int radius) {
        this.radius = radius;
    }

    /**
     * @return the radius
     */
    public int getRadius() {
        return radius;
    }
}

в вашей деятельности

LinearLayout layout = new LinearLayout(this);
    layout.setLayoutParams(new LayoutParams(320, 420));
    layout.setOrientation(LinearLayout.VERTICAL);
    tt = new test(this);
    tt.setLayoutParams(new LayoutParams(100, 200));
    layout.addView(tt);

    SeekBar bar = new SeekBar(this);
    bar.setMax(40);
    bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            // TODO Auto-generated method stub
            tt.setRadius(progress);
            tt.invalidate();
        }
    });

    layout.addView(bar);

    setContentView(layout);

Надежда полезна для вас.

...