A. android 繪圖
這個建議你搜索AChartEngine,這個是專門做報表的。給你一個參考地址
http://blog.csdn.net/lk_blog/article/details/7645668
這個頁面中的第一個示例折線圖就是一個溫度的曲線圖,具體我沒過多研究,你可以試試。
B. Android的UI底層是用CPU繪圖的還是GPU繪圖的呢
安卓有2種繪制模型:
一,軟體繪制模型,這里由CPU主導繪圖,視圖按照以下2個步驟繪圖。
讓視圖結構(view hierarchy)失效。
繪制整個視圖結構。
當應用程序需要更新它的部分UI時,都會調用內容發生改變的View對象的invalidate()方法。無效(invalidation)消息請求會在View對象層次結構中傳遞,以便計算出需要重繪的屏幕區域(臟區)。然後,Android系統會在View層次結構中繪制所有的跟臟區相交的區域。
但是,這種方法有兩個缺點:
1. 繪制了不需要重繪的視圖(與臟區域相交的區域)
2. 掩蓋了一些應用的bug(由於會重繪與臟區域相交的區域)
注意:在View對象的屬性發生變化時,如背景色或TextView對象中的文本等,Android系統會自動的調用該View對象的invalidate()方法。
二,硬體加速繪制模型,這里由GPU主導繪圖,視圖按照以下3個步驟繪圖。
讓視圖結構失效。
記錄和更新顯示列表(Display List)。
繪制顯示列表。
這種模式下,Android系統依然會使用invalidate()方法和draw()方法來請求屏幕更新和展現View對象。但Android系統並不是立即執行繪制命令,而是首先把這些View的繪制函數作為繪制指令記錄一個顯示列表中,然後再讀取顯示列表中的繪制指令調用OpenGL相關函數完成實際繪制。另一個優化是,Android系統只需要針對由invalidate()方法調用所標記的View對象的臟區進行記錄和更新顯示列表。沒有失效的View對象就簡單重用先前顯示列表記錄的繪制指令來進行簡單的重繪工作。
使用顯示列表的目的是,把視圖的各種繪制函數翻譯成繪制指令保存起來,對於沒有發生改變的視圖把原先保存的操作指令重新讀取出來重放一次就可以了,提高了視圖的顯示速度。而對於需要重繪的View,則更新顯示列表,然後再調用OpenGL完成繪制。
在這種繪制模型下,我們不能依賴一個視圖與臟區(dirty region)相交而導致它的draw()方法被自動調用,所以必須要手動調用該視圖的invalidate()方法去更新顯示列表。如果忘記這么做可能導致視圖在改變後不會發生變化。
硬體加速提高了Android系統顯示和刷新的速度,但它也不是萬能的,它有三個缺陷:
1. 兼容性(部分繪制函數不支持或不完全硬體加速)
2. 內存消耗(OpenGL API調用就會佔用8MB,而實際上會佔用更多內存)
3. 電量消耗(GPU耗電)
C. 手機上有什麼好的安卓繪圖軟體適合畫圖
機上有什麼好的安卓繪圖軟體適合畫圖?
主要用來畫一些函數圖像,要求軟體最好
D. android怎麼用canvas畫圖
使用BitmapDrawable (InputStream is)構造一個BitmapDrawable;
使用BitmapDrawable類的getBitmap()獲取得到點陣圖;
// 讀取InputStream並得到點陣圖
InputStream is=res.openRawResource(R.drawable.pic180);
BitmapDrawable bmpDraw=new BitmapDrawable(is);
Bitmap bmp=bmpDraw.getBitmap();
E. 請問好用的安卓繪圖軟體有哪些
安卓繪圖軟體SBM,這個軟體我用過,比較好。我雖然不知道有沒有更好的,不過這個軟體基本上已經滿足了我繪畫的要求。
這個軟體有中文版,另外,我的HTC
G13低版本的可以用,高版本的就不行,應該是我手機配置低了。
F. android是否可以以畫圖的形式將圖片畫在某位置
可以。
1、在View的onDraw中獲取canvas
java">@Override
protectedvoidonDraw(Canvascanvas){//onDraw中獲取參數中的canvas
//TODOAuto-generatedmethodstub
super.onDraw(canvas);
}
2、獲取圖片,轉化為Bitmap對象
//從資源文件中生成點陣圖bitmap
Bitmapbitmap=BitmapFactory.decodeResource(getResources(),R.drawable.icon);
3、通過canvas的drawbitmap方法,把圖片畫到任意位置。
//Bitmap:圖片對象,left:偏移左邊的位置,top:偏移頂部的位置
//rawBitmap(Bitmapbitmap,floatleft,floattop,Paintpaint)
canvas.drawBitmap(bitmap,10,60,paint);//在10,60處開始繪制圖片
G. 如何在android畫分析圖(例如 柱狀圖、趨勢圖、餅圖)
目前android上圖標引擎並不少見,像aChartEngine就能很好的完成繪圖:
aChartEngine支持:1、linechart(折線圖)2、areachart(面積圖;分區圖,對比圖)3、scatterchart(散點圖)4、timechart(時間圖;進度表)5、barchart(條形圖;柱狀圖)6、piechart(餅圖)7、bubblechart(氣泡圖)8、doughnutchart(圓環圖)9、range(high-low)barchart(范圍條形圖)10、dialchart/gauge(撥號盤/壓力表)11、combined(anycombinationofline,cubicline,scatter,bar,rangebar,bubble)chart(組合圖)12、cubiclinechart(立方折線圖)
上述所有支持的圖表類型,都可以包含多個系列,都支持水平(默認)或垂直方式展示圖表,並且支持許多其他的自定義功能。所有圖表都可以建立為一個view,也可以建立為一個用於啟動activity的intent.
下面是一個餅狀圖的源碼事例:
package org.achartengine.chartdemo.demo.chart;
import org.achartengine.ChartFactory;
import org.achartengine.renderer.DefaultRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
public class BudgetPieChart extends AbstractDemoChart {
public String getName() {
return "Budget chart";
}
public String getDesc() {
return "The budget per project for this year (pie chart)";
}
public Intent execute(Context context) {
double[] values = new double[] { 12, 14, 11, 10, 19 };//餅圖分層5塊,每塊代表的數值
int[] colors = new int[] { Color.BLUE, Color.GREEN, Color.MAGENTA, Color.YELLOW, Color.CYAN };//每塊餅圖的顏色
DefaultRenderer renderer = buildCategoryRenderer(colors);
renderer.setZoomButtonsVisible(true);//設置顯示放大縮小按鈕
renderer.setZoomEnabled(true);//設置允許放大縮小.
renderer.setChartTitleTextSize(20);//設置圖表標題的文字大小
return ChartFactory.getPieChartIntent(context, buildCategoryDataset("Project budget", values),
renderer, "Budget");//構建Intent, buildCategoryDataset是調用AbstraDemoChart的構建方法.
}
}
H. android:如何用canvas在自定義view里畫圖
將構造函數改成這個試試
public iniView01(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
本人在寫的時候也遇到過代碼沒問題,但是一到虛擬機裡面運行就崩了,然後將構造函數改成這個就不會了
I. Android平台上有哪些優秀的繪畫App
無限繪畫就是這樣一個具有強大繪畫功能的APP有這方面興趣的人都是可以去使用一下的,因為這個APP不僅功能非常強大,而且下載起來也是非常的簡單方便,不會有太多太復雜的東西。
J. android studio有沒有畫圖工具
android studio軟體裡面並沒有提供畫圖的工具,如果要畫圖的話,可以使用專業的畫圖軟體,比如ps