1. 程式人生 > >Android簡單實現k線圖,

Android簡單實現k線圖,

我並沒有根據股票的具體數字進行畫圖,如果大家需要具體實現的話,就需要根據具體的座標和股票值進行比例轉換,轉換好了以後就能進行具體畫圖                                       了,廢話不多說先上圖給大家看看

 


下面我就直接貼原始碼了 非常簡單,希望不要噴我
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Display display = getWindowManager().getDefaultDisplay();
        bitmap = Bitmap.createBitmap(display.getWidth(), display.getHeight(), Bitmap.Config.ARGB_8888);
        img = (ImageView) findViewById(R.id.img);
        img.setImageBitmap(bitmap);
        initCanvas();
        initPanit();
        drawMap();

        initText();
        drawKmap();
    }

    private void initText() {
        canvas.drawText("200",200,1650,paint);
        canvas.drawText("400",400,1650,paint);
        canvas.drawText("600",600,1650,paint);
        canvas.drawText("800",800,1650,paint);
        canvas.drawText("1000",1000,1650,paint);
        canvas.drawText("1200",1200,1650,paint);

        canvas.drawText("1400",1400,1650,paint);
        canvas.drawText("1600",1600,1650,paint);

        //x軸
        canvas.drawText("200",20,1600,paint);
        canvas.drawText("400",20,1400,paint);
        canvas.drawText("600",20,1200,paint);
        canvas.drawText("800",20,1000,paint);
        canvas.drawText("1000",0,800,paint);
        canvas.drawText("1200",0,600,paint);
        canvas.drawText("1400",0,400,paint);
        canvas.drawText("1600",0,200,paint);
        img.setImageBitmap(bitmap);
        img.invalidate();
    }
private void drawKmap() {
        canvas.drawLine(288,968,395,1300,paint);
        canvas.drawLine(395,1300,554,1266,paint);
        canvas.drawLine(554,1266,788,715,paint);
        canvas.drawLine(788,715,891,758,paint);
        canvas.drawLine(891,758,1256,136,paint);
        img.setImageBitmap(bitmap);
        img.invalidate();
    }
    private void drawMap() {
        canvas.drawLine(150f, 120f, 150f, 1700f, paint);
        canvas.drawLine(0f, 1600f, 1500f, 1600f, paint);
    }
    private void initPanit() {
        paint = new Paint();
        paint.setColor(Color.RED);
        paint.setStrokeWidth(10);
        paint.setTextSize(50);
    }
    Canvas canvas;
    private void initCanvas() {
     canvas = new Canvas();
        canvas.setBitmap(bitmap);

    }


}

原文地址:http://www.921kf.com/thread-14-1-1.html