我在一个 android 应用程序中工作,我有一个 stings 列表。如果字符串列表包含 3 个字符串,我必须将圆分成 3 个相等的部分并将三个字符串绑定(bind)在圆的分割区域中。我怎样才能做到这一点。我应该使用哪个小部件来制作这个圆圈。请帮助把我。
最佳答案
这只是一个示例。您需要根据自己的需要进行修改。由于您要求提供示例,因此我粘贴了以下代码。
http://developer.android.com/training/custom-views/custom-drawing.html .绘图文档。链接末尾有示例
使用图表引擎很简单。 http://www.achartengine.org/
使用图表引擎的饼图。 http://wptrafficanalyzer.in/blog/android-drawing-pie-chart-using-achartengine/ .
要在 View 上绘图,您可以使用以下示例。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView mv= new MyView(this);
setContentView(mv);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
class MyView extends View
{
Context c;
private Bitmap mBitmap;
private Canvas mCanvas;
private Path mPath;
private Paint mBitmapPaint;
private Paint mpaint,paint2;
public MyView(Context context) {
super(context);
c= context;
mpaint= new Paint();
mpaint.setColor(Color.RED);
mpaint.setStyle(Paint.Style.FILL);
paint2 = new Paint();
paint2.setColor(Color.GREEN);
paint2.setStrokeWidth(10);
mBitmapPaint = new Paint();
mBitmapPaint.setColor(Color.RED);
// TODO Auto-generated constructor stub
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
}
@Override
protected void onDraw(Canvas canvas) {
Display display = ( (Activity) c).getWindowManager().getDefaultDisplay();
float w = display.getWidth();
float h = display.getHeight();
canvas.drawCircle(w/2, h/2, 350, mpaint);
canvas.drawLine(w/2, h/2, 20, h/2, paint2);
}
}
}
您使用 canvas.drawText(text, x, y, paint) 绘制文本。根据您的需要进行相同的修改。在 View 上添加动画。
关于android - android中动态划分一个圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15566660/