0
ペイントブラシとして機能するようにプログラムで円を描いていますが、スケーリングに問題があります。私は、半径の値をseekbarメソッドの進捗状況に関連づけて数値化しましたが、私がタブレットに触れると、ブラシはまだ同じサイズです。私がシークバーをスライドさせている間、ブラシを常にスケーリングし直す方法を教えてください。ここでアンドロイド:シークバーを使って円をどのようにスケールするのですか?
ペイントブラシとして機能するようにプログラムで円を描いていますが、スケーリングに問題があります。私は、半径の値をseekbarメソッドの進捗状況に関連づけて数値化しましたが、私がタブレットに触れると、ブラシはまだ同じサイズです。私がシークバーをスライドさせている間、ブラシを常にスケーリングし直す方法を教えてください。ここでアンドロイド:シークバーを使って円をどのようにスケールするのですか?
あなたに有益な希望
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);
バーの進捗状況を求める上の円の半径を変更するためのコードです。
は、私はちょうど今ことを試みたが、私のサークルは文句を言わないオーバーライド 公共ボイドはonProgressChanged \t \t \t(シークバーシークバー、int型の進捗状況を、 \t \t \t \t \tブールFROMUSER){ \t \t \t \t \t \t \t \tを表示しますcurrentVal = progress + brushNumSize; \t \t \t \t radius.radius = currentVal; \t \t \t \t brushSize.setText( "ブラシサイズ" + Integer.toString(currentVal)); \t \t \t \t \t \t \t} \t \t})。 – SpicyWeenie
私の編集したコードを確認してください –
この例をありがとう。私はそれを試しましたが、私のサークルは消えて... – SpicyWeenie