Android簡單實現k線圖,
阿新 • • 發佈:2019-02-08
我並沒有根據股票的具體數字進行畫圖,如果大家需要具體實現的話,就需要根據具體的座標和股票值進行比例轉換,轉換好了以後就能進行具體畫圖 了,廢話不多說先上圖給大家看看
下面我就直接貼原始碼了 非常簡單,希望不要噴我
@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