編輯:關於Android編程
3. public LineChartTools( LinkedList
三、遇到的問題以及解決的方式
1.x軸坐標顯示不完全


解決方式:設置屬性解決 chart.getXAxis().setAvoidFirstLastClipping(true); //x軸上起點和終點坐標數顯示不完整
**2.x軸坐標數據錯亂(重點注意)


解決方式:*一定要先調用loadLineChartData()方法給圖表設置數據,再調用setLineChartStyle()* 方法設置圖表的樣式。順序一定不能打亂!!!!
3.x軸坐標軸設置間隔後,最後一個數據不顯示
設置間隔屬性:chart.getXAxis().setLabelsToSkip(5); 間隔為5

解決方式:在集合數據的最後添加一條空數據
Map map = list.get(list.size() - 1);
if ("1".equals(dateStart) && "1".equals(dateRange)) {
//如果是,昨天,24小時制,添加一條原來list集合裡的最後一個數據
list.add(map);
}
mList =list;
4.x軸坐標顯示不完全
vcq9o7rO0tXiwO/Kx7u70rvW1su8wre1xKOsPGJyIC8+DQooMSm9q2xlYmFsserHqbXEsry+1rnMtqjU2tbQvOSjrLb4yMPUrUxpbmVDaGFydE1hcmtlclZpZXe1xLK8vtZsYXlvdXRSZXNvdXJjZc6qv9WhozxiciAvPg0KbGViYWyx6septcSyvL7Wucy2qNTa1tC85LXEsry+1jwvcD4NCjxwcmUgY2xhc3M9"brush:java;">
(2)將固定的標簽lebal的時間和統計(掃碼次數)的屬性傳入,從而動態的獲取統計的數據和時間(即x、y軸數據),然後獲取的數據設置給固定的標簽布局。

layoutResource的布局文件

public class LineChartMarkerView extends MarkerView{
private TextView mTime;
private TextView mName;
private TextView mData;
private String mDateStart; //開始時間
private String mDateRange; //時間間隔
// private LinkedList> mList;
private LinkedList> mList;
private Map.Entry mFstMapEntry;
public LineChartMarkerView(Context context, int layoutResource, String name,LinkedList> list,TextView labelTime//時間
,TextView labelData//統計的數據) {
super(context, layoutResource);
if (null != list && list.size() > 0 && labelTime != null && labelData != null) {
mList = list;
}else {
return;
}
mTime =labelTime;
mData = labelData;
}
@Override
public void refreshContent(Entry e, Highlight highlight) {
//y軸數據
int intVal = (int) e.getVal();
String val = Integer.toString(intVal);
//固定lebal設置統計數據(即y軸數據)
mData.setText(val);
//上面的時間
if (e.getXIndex() < mList.size()) {
// ContentUtil.makeLog("e.getXIndex()", e.getXIndex() + "");
mFstMapEntry = Tools.fstMapEntry(mList.get(e.getXIndex()));
}
//今天和昨天顯示0:00、6:00、12:00格式顯示
if (mFstMapEntry != null && mFstMapEntry.getKey() != null && mTime != null) {
//固定lebal設置時間數據(即x軸數據)
mTime.setText(mFstMapEntry.getKey());
}
}
@Override
public int getXOffset(float xpos) {
return -(getWidth() / 3);
}
@Override
public int getYOffset(float ypos) {
return -getHeight();
}
}
Android 自定義控件之基礎幾何圖形繪制詳解
前言距離寫上一篇自定義View文章已經大半年過去了,一直想繼續寫,但是無奈技術有限,生怕誤人子弟。這段時間項目剛剛完成,有點時間,跟著大神的腳步,鞏固下自定義View的相
iTools安卓模擬器硬件虛擬化方法
在itools新出的安卓模擬器裡,我們見到了很多亮點,比如DIY按鍵,一鍵隱藏,共享文件,賬號多開,甚至是手機才可以用的旋轉屏幕,那麼在itools安卓模擬
android學習十一(android的SQLite數據庫的使用)
SQLite是一款輕量級的關系型數據庫,它運算速度快,占用資源少,通常只需要幾百k的內存就夠了,支持標准的sql語法和數據庫的ACID事務。在android中為了能夠更加
華為手機鎖屏密碼忘記了怎麼辦 不丟失數據恢復鎖屏密碼
華為、榮耀很多款機型都配備了指紋識別模塊,長期用指紋來解鎖,恐怕鎖屏密碼都忘記了吧?那麼要怎麼才能不用雙清、不用還原系統,不丟失任何數據的情況下修改鎖屏密碼