編輯:關於Android編程
AndroidChart">MPAndroidChart是PhilJay大神給Android開發者帶來的福利。MPAndroidChart是一個功能強大並且使用靈活的圖表開源庫,支持Android和IOS兩種,這裡我們暫時只關注Android版本。
https://github.com/PhilJay/MPAndroidChart/wiki
https://jitpack.io/com/github/PhilJay/MPAndroidChart/v3.0.0-beta1/javadoc/
先看下效果壓壓驚,右邊的圖為左邊的圖橫向拉伸後的效果
實際靜態效果,上面那個是因為加了動畫,錄制Gif的時候不小心弄成了一直旋轉的效果<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20160906/2016090609284137.png" title="\" />
布局文件
對於Chart,可以采用布局文件添加方式,也可以采用代碼添加方式。
代碼
public class MainActivity extends AppCompatActivity { @Bind(R.id.piechart) PieChart piechart; private Random random;//用於產生隨機數字 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); random = new Random(); initPieChart();//初始化餅圖 } private void initPieChart() { ArrayListyVals = new ArrayList<>(); //值坐標 ArrayList xVals = new ArrayList<>();//對應的Lable,可以理解成X軸 for (int i = 0; i < 5; i++) { xVals.add((i + 1) + "月"); yVals.add(new BarEntry(random.nextInt(10000), i)); } PieDataSet pieDataSet = new PieDataSet(yVals, "小明每月支出");//創建餅圖的一個數據集 pieDataSet.setColors(ColorTemplate.COLORFUL_COLORS); //設置成豐富多彩的顏色 DisplayMetrics metrics = getResources().getDisplayMetrics(); float px = 10 * (metrics.densityDpi / 160f); pieDataSet.setSelectionShift(px); //點擊後延伸出來的長度 PieData piedata = new PieData(xVals, pieDataSet);//生成PieData piechart.setData(piedata);//給PieChart填充數據 piechart.getLegend().setPosition(Legend.LegendPosition.ABOVE_CHART_LEFT); piechart.getLegend().setForm(Legend.LegendForm.CIRCLE);//設置注解的位置和形狀 piechart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {//設置值選擇時的Listener @Override public void onValueSelected(Entry entry, int i, Highlight highlight) { Toast.makeText(MainActivity.this, "Something selected value = " + entry.getVal(), Toast.LENGTH_SHORT).show();//單純地顯示一個Toast } @Override public void onNothingSelected() { } }); piechart.setCenterText("收支明細");//中間寫的文字 piechart.setCenterTextColor(Color.RED);//設置中間文字的顏色 piechart.setCenterTextRadiusPercent(0.5f);//設置文字顯示的角度,180橫著,默認是豎著 piechart.setCenterTextSize(12f);//設置中心文字的字體大小 piechart.setCenterTextTypeface(null);//設置字體 piechart.setDrawCenterText(true);//中心字使能開關,false時中間無法顯示文字 piechart.setTransparentCircleAlpha(100);//透明圈的透明度,分3圈,一個是外面的值,然後是這個,然後就是下面的那個Hole piechart.setTransparentCircleColor(Color.RED); //設置顏色 piechart.setTransparentCircleRadius(50f);//設置半徑 piechart.setDrawHoleEnabled(true);//基本同上 piechart.setHoleColor(Color.GREEN); piechart.setHoleRadius(30f); piechart.setDescription("No Deal");//設置描述文字 piechart.setDescriptionTextSize(20.f);//設置描述文字的字體 piechart.animateXY(1000, 1000); } }
值選擇時的事件處理
上面的例子中其實已經有了
piechart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {//設置值選擇時的Listener @Override public void onValueSelected(Entry entry, int i, Highlight highlight) { Toast.makeText(MainActivity.this, "Something selected value = " + entry.getVal(), Toast.LENGTH_SHORT).show();//單純地顯示一個Toast } @Override public void onNothingSelected() { } });
選中和啥都沒干的回調,利用這個回調我們可以做一些跳轉操作,比如從國家級報表,跳轉到省級,然後市級 and so on.
JSON的定義: 一種輕量級的數據交換格式,具有良好的可讀和便於快速編寫的特性。業內主流技術為其提供了完整的解決方案(有點類似於正則表達式 ,獲得了當今大部分語言的支持)
android 中使用Canvas的drawText繪制文本的位置,是基於基線的。如下圖: 其中字母Q的小尾巴在橫線下面了。 這裡面的關鍵是Paint.getT
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驅動。給控件添加事件也有接口回調和委托代理的方式。今天這篇博客就總結一下Android中常用的基
安卓手機中,多點觸摸是是最基本的操作,下面就使用程序進行演示多點觸摸操作一、獲取觸摸事件中的點擊,移動和抬起事件,創建新的安卓項目,如下面代碼所示,分別為MainActi