码迷,mamicode.com
首页 > 移动开发 > 详细

android趋势图创建与使用

时间:2014-11-06 14:55:34      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:android   应用开发   源码   趋势   ui   

 之前项目需求里有一个需求是要根据每周的天气温度去绘制一个趋势图,这个图不基于XY坐标,就是一个单纯的趋势图,百度后看了一些博客,大体上有了一些思路,下面是整个趋势图的效果图:

bubuko.com,布布扣

最下面的点线图就是要做的效果。

下面贴出趋势图示例代码:

package com.example.testxyjar;

import utils.XYViewDrawBitmap;
import utils.XYViewDrawLine;
import utils.XYViewDrawPointer;
import utils.XYViewDrawText;
import view.XYView;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
import bean.XYViewBitmapBean;
import bean.XYViewLineBean;
import bean.XYViewPointerBean;
import bean.XYViewTextBean;

public class MainActivity extends Activity {
    private XYView xyview;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initCache();
        initView();
        initData();
    }

    private void initCache() {
    }

    private void initView() {
        xyview = (XYView) findViewById(R.id.main_page_view_xyview);

    }

    private void initData() {
        // 第一个点
        XYViewPointerBean xyPointer = new XYViewPointerBean();
        float data[] = { 10.0f, 20.0f, -10.0f, 40.0f, 20.0f, 50.0f };
        xyPointer.setData(data);
        xyPointer.setColor(Color.RED);
        xyPointer.setStrokeWidth(20.0f);
        XYViewDrawPointer xyViewDrawPointer = new XYViewDrawPointer(xyPointer);
        xyview.addXYViewDrawable(xyViewDrawPointer);
        // 画图
        XYViewBitmapBean xybitmap = new XYViewBitmapBean();
        float dataBitmap[] = { 10.0f, 20.0f, -10.0f, 40.0f, 20.0f, 50.0f };
        Drawable d = getResources().getDrawable(
                R.drawable.weather_temperature_point_icon_high);
        BitmapDrawable bd = (BitmapDrawable) d;
        Bitmap b = bd.getBitmap();
        Bitmap[] bs = { b, b, b, b, b, b };
        xybitmap.setY_away(40);
        xybitmap.setData(dataBitmap);
        xybitmap.setBitmapData(bs);
        XYViewDrawBitmap xyViewDrawBitmap = new XYViewDrawBitmap(xybitmap);
        xyview.addXYViewDrawable(xyViewDrawBitmap);
        // 第一个线
        XYViewLineBean xyLineBean = new XYViewLineBean();
        xyLineBean.setData(data);
        xyLineBean.setColor(Color.BLACK);
        xyLineBean.setStrokeWidth(2.0f);
        XYViewDrawLine xyViewLine = new XYViewDrawLine(xyLineBean);
        xyview.addXYViewDrawable(xyViewLine);
        //
        XYViewTextBean xyTexter = new XYViewTextBean();
        float dataText[] = { 10.0f, 20.0f, -10.0f, 40.0f, 20.0f, 50.0f };
        String [] dataStrs={"大娃","二娃","三娃","四娃","五娃","六娃"};
        xyTexter.setData(dataText);
        xyTexter.setColor(Color.RED);
        xyTexter.setStrokeWidth(1.0f);
        xyTexter.setTextSize(18.0f);
        xyTexter.setTextData(dataStrs);
        XYViewDrawText xyViewTexter = new XYViewDrawText(xyTexter);
        xyview.addXYViewDrawable(xyViewTexter);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}
代码中用到的jar包以上传到我的资源里,如有求要,请下载使用。


android趋势图创建与使用

标签:android   应用开发   源码   趋势   ui   

原文地址:http://blog.csdn.net/lcq5211314123/article/details/40860117

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!