ImageView
ピクセル値(描画される円の中心)が別のオブジェクトから受信されるたびに、特定の半径の円を描画する方法を教えてもらえますActivity
か?
質問する
4783 次
1 に答える
3
メソッドの拡張ImageView
とオーバーライドonDraw(Canvas c)
-追加c.drawCirle(x,y,radius,Paint)
または、円を描くために、純粋なキャンバスを使用することもできます。
私はこの方法を試しましたが、それでも運がありません
public class MyActivity extends Activity {
private MyImageView myImageView;
float x, y;
float [] loc;
float radius = 50;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_location);
myImageView = (MyImageView) findViewById(R.id.mapimageView);
myImageView.setImageResource(R.drawable.mymap);
//Receiving location information(x/y pixels array) from myLocation Activity
Intent i = getIntent();
loc = i.getFloatArrayExtra("Location");
}
public class MyImageView extends ImageView
{
public MyImageView(Context context) {
super(context);
}
// Constructor for inflating via XML
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
x= loc[0];
y=loc[1];
p.setColor(Color.RED);
p.setStrokeWidth(2);
canvas.drawCircle(x, y, radius, p);
}
}
そしてxmlでに変更<ImageView
しますyour.package.name.MyImageView
//編集Imはメモリからのみそれを書いているので、タイプミスがある可能性があります
于 2012-11-17T20:55:26.183 に答える