android - android中动态划分一个圆圈

标签 android custom-controls

我在一个 android 应用程序中工作,我有一个 stings 列表。如果字符串列表包含 3 个字符串,我必须将圆分成 3 个相等的部分并将三个字符串绑定(bind)在圆的分割区域中。我怎样才能做到这一点。我应该使用哪个小部件来制作这个圆圈。请帮助enter image description here把我。

最佳答案

这只是一个示例。您需要根据自己的需要进行修改。由于您要求提供示例,因此我粘贴了以下代码。

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 上添加动画。

enter image description here

关于android - android中动态划分一个圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15566660/

相关文章:

Android 游戏在某些设备上不稳定,但 FPS 很高

c# - Visual Studio 2008 IDE 无法正确呈现自定义控件

android - 如何为线性布局元素设置 setLayoutParams

android - 如何在android中更改我选择的标签文本颜色

android - 在 Android 中使用第三方 .so 文件的正确方法

WPF:如何使用透明 Canvas 和可点击子项制作叠加控件

c# - 如何知道 ListView 中哪个 Xamarin Forms 条目已被修改?

c# - 如何覆盖 C# Winforms 中的 Control.Enabled 属性?

c# - 如何在 C# 中的 FontWeights 之间使用等于运算符?

android - 标记来自 Google Maps Directions API 响应的高速公路