android 折线图滑动 - 防小米天气24小时预报折线图
看到小米天气24小时预报,滑动的时候天气情况会跟着动,始终保持在显示区域中间,觉得很有趣,就试着写出来,顺便加深学习自定义view.
不多说废话了,先看效果图
一 .布局文件代码很简单如下,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.zero.simplelinechart.HScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none"
android:id="@+id/HScrollView"
android:layout_marginTop="50dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.zero.simplelinechart.LineChartView
android:id="@+id/simpleLineChart"
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="@android:color/darker_gray"
/>
</LinearLayout>
</com.zero.simplelinechart.HScrollView>
</LinearLayout>
二.LineChartView代码
这里面代码有点多,不过都有注释
主要就是些计算x轴点和y轴点
package com.zero.simplelinechart;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.DashPathEffect;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import com.zero.simplelinechart.util.UtilApp;
import java.util.ArrayList;
/**
* @author zero
* 自定义动态折线图
*/
public class LineChartView extends View implements HScrollView.OnMyHScrollView{
private static final String TAG = "LineChartView";
private HScrollView mHScrollView;
//Y轴 每个刻度的间距间距
private int myInterval = 5;
//X轴 每个刻度的间距间距
private int mxInterval