導航:首頁 > 操作系統 > androidcanvas畫布大小

androidcanvas畫布大小

發布時間:2023-05-09 13:06:55

android canvas.drawBitmap() 繪制圖片大小的問題

你繪圖的塵汪控制項是不是足夠大?像素密度有沒有計算進去?bitmap直接可以判斷大派拆仔小的,御顫單位是px。你打log把該輸出的輸出一下看看。

❷ android canvas 是像素嗎

Canvas : 畫布對象,相當於現實生活中畫圖用的 『紙 或 布』。
下面介紹來自於android學習手冊,android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,排在第三、四個。
Android畫圖最基本的三個對象(Color,Paint,Canvas)
三個類都存放在 android.graphics包下
1) Color :顏色對象,相當於現實生活中的 『調料』
2) Paint : 畫筆對象,相當於現實生活中畫圖用的 『筆』————主要的還是對『畫筆』進行設置
3) Canvas : 畫布對象,相當於現實生活中畫圖用的 『紙 或 布』
三者相結合,就能畫出基本的圖形

❸ android實現一個簡單的畫布,可以用手指畫線條。

public class DrawView extends View {
Context mycontext;
int toasttime = 1000*60;
boolean enabletoast = true;
//之前的坐標
float preX;
float preY;
//路徑
private Path path;
//畫筆
public Paint paint = null;
//默認畫布大小
public static int VIEW_WIDTH = 500;
public static int VIEW_HEIGHT = 600;
//
Bitmap cacheBitmap = null;
//
Canvas cacheCanvas = null;

public DrawView(Context context, AttributeSet set) {
super(context, set);
mycontext = context;
cacheBitmap = Bitmap.createBitmap(VIEW_WIDTH, VIEW_HEIGHT,
Config.ARGB_8888);
cacheCanvas = new Canvas();

path = new Path();
cacheCanvas.setBitmap(cacheBitmap);

paint = new Paint(Paint.DITHER_FLAG);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
paint.setAntiAlias(true);
paint.setDither(true);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(x, y);
preX = x;
preY = y;
break;
case MotionEvent.ACTION_MOVE:
path.quadTo(preX, preY, x, y);
preX = x;
preY = y;
break;
case MotionEvent.ACTION_UP:
cacheCanvas.drawPath(path, paint);
path.reset();
if(enabletoast == false){

}
break;
}
invalidate();
return true;
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint bmpPaint = new Paint();
canvas.drawBitmap(cacheBitmap, 0, 0, bmpPaint);
canvas.drawPath(path, paint);
}

}

❹ android canvas 如何以厘米為單位

請參閱 TypedValue | Android Developers 。余卜敏這弊梁個類中的

complexToDimensionPixelSize(int data, DisplayMetrics metrics)

可以把mm轉換成豎枝px。

❺ Android 怎麼使用Bitmap+Canvas 自適應屏幕

我們可以使用Matrix 來放縮我們得到的Bitmap 從而使我們的BItmap適應我們的手機屏幕

首先我們得先獲取我們的手機屏幕的大小

java">WindowManagerwm=(WindowManager)getContext().getSystemService(
Context.WINDOW_SERVICE);
intwidth=wm.getDefaultDisplay().getWidth();
intheight=wm.getDefaultDisplay().getHeight();

然後我們構造一個新的Matrix對象,自己完成寫一個函數,如下:

publicBitmapresizeBitmap(Bitmapbitmap,intw,inth)
{
if(bitmap!=null)
{
intwidth=bitmap.getWidth();
intheight=bitmap.getHeight();
intnewWidth=w;
intnewHeight=h;
floatscaleWight=((float)newWidth)/width;
floatscaleHeight=((float)newHeight)/height;
Matrixmatrix=newMatrix();
matrix.postScale(scaleWight,scaleHeight);
Bitmapres=Bitmap.createBitmap(bitmap,0,0,width,height,matrix,true);
returnres;

}
else{
returnnull;
}
}

這樣我們通過這個函數返回的Bitmap對象就是可以適應我們手機屏幕大小的了。。

❻ android canvas的drawText方法 如何設置字體大小和格式。

Canvas相當於畫布,字體的大小格式在Paint上設置才正確, Paint 相當於畫筆。代碼如下,沒有具體參數:

Paint paint = new Paint();

paint.setTextSize(textSize);//設置字體大小

paint.setTypeface(typeface);//設置字體類型

canvas.drawText(text, x, y, paint);//使用畫筆paint

@Override

public void onDraw (Canvas canvas) {

Rect targetRect = new Rect(50, 50, 1000, 200);

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

paint.setStrokeWidth(3);

paint.setTextSize(80);

String testString = "測試:ijkJQKA:1234";

paint.setColor(Color.CYAN);

canvas.drawRect(targetRect, paint);

paint.setColor(Color.RED);

FontMetricsInt fontMetrics = paint.getFontMetricsInt();

(6)androidcanvas畫布大小擴展閱讀:

Screen Space - Camera

此模式類似Screen Space - Overlay,但區別是此模式將Canvas放置於某個Camera前固定距離。此Camera負責渲染所有UI元素,則攝像機參數(Camera Settings)直接影響UI表現。

比如Camera是透視模式(Perspective),則UI元素會基於Field of View的值而扭曲變形。同樣的,若屏幕解析度變更,或者視覺平截體(CameraFrustrum)改變,則Canvas自動調整自身尺寸作自適應。

❼ android canvas scale函數能擴大畫布canvas大小嗎

您好,很高興能幫助您
感覺用 canvas scale函授後,canvas上的圖像變大了,但是超出canvas的圖緩租像沒有了.... 是不是scale只改變圖片,不改變canvas大小!
你的采擾喚兆納是我前進的動力,
記得好評和採納,答鏈檔題不易,互相幫助,

❽ android繪圖之Canvas基礎(2)

Canvas畫布,用於繪制出各種形狀配合畫布的變幻操作可以繪制出很多復雜圖形,基本的繪制圖形分類。
提供的繪制函數:

上面四個函數都可以繪制canvas的背景,注意到PorterDuff.Mode變數,它只對兩個canvas繪制bitmap起作用,所以此處暫時不討論mode參數(沒有設置mode默認使用srcover porterff mode)。

Rect 和RectF都是提供一個矩形局域。
(1)精度不一樣,Rect是使用int類型作為數值,RectF是使用float類型作為數值。
(2)兩個類型提供的方法也不是完全一致。

**
rect:RectF對象,一個矩形區域。
rx:x方向上的圓角半徑。
ry:y方向上的圓角半徑。
paint:繪制時所使用的畫筆。**

**
cx 圓心x
cy 圓心y
radius半徑**

需要一個Path,代表路徑後面會講解。

繪制線的集合,參數中pts是點的集合,兩個值代表一個點,四個值代表一條線,互相之間不連接。
offset跳過的點,count跳過之後要繪制的點的總數,可以用於集合中部分點的繪制。

跳過部分節點:

沒有跳過點

RectF oval:生成弧的矩形,中心為弧的圓心
float startAngle:弧開始的角度,以X軸正方向為0度,順時針
float sweepAngle:弧持續的角度
boolean useCenter:是否有弧的兩邊,True,還兩邊,False,只有一條弧

在矩形框內畫一個橢圓,如果是個正方形會畫出一個圓。

canvas.drawPoint();
canvas.drawPoints();

**
只需要提供兩個點一個坐標就可以繪制點。
canvas.drawPoint(20,20,mPaint);
float[] points = {30,40,40,50,60,60};
canvas.drawPoints(points,mPaint);**

這幾種方法類似:
canvas.drawText("好好學習,天天向上",100,100,mPaint);

drawTextOnPath
沿著一條 Path 來繪制文字
text 為所需要繪制的文字
path 為文字的路徑
hOffset 文字相對於路徑的水平偏移量,用於調整文字的位置
vOffset 文字相對於路徑豎直偏移量,用於調整文字的位置
值得注意的是,在繪制 Path 的時候,應該在拐彎處使用圓角,這樣文字顯示時更舒服

大致講解,後面會重點講解。

Rect src
Rect dst
其中src和dst這兩個矩形區域是用來做什麼的?
Rect src:指定繪制圖片的區域
Rect dst或RectF dst:指定圖片在屏幕上的繪制(顯示)區域
首先指定圖片區域,然後指定繪制圖片的區域。

android繪圖之Paint(1)
android繪圖之Canvas基礎(2)
Android繪圖之Path(3)
Android繪圖之drawText繪制文本相關(4)
Android繪圖之Canvas概念理解(5)
Android繪圖之Canvas變換(6)
Android繪圖之Canvas狀態保存和恢復(7)
Android繪圖之PathEffect (8)
Android繪圖之LinearGradient線性漸變(9)
Android繪圖之SweepGradient(10)
Android繪圖之RadialGradient 放射漸變(11)
Android繪制之BitmapShader(12)
Android繪圖之ComposeShader,PorterDuff.mode及Xfermode(13)
Android繪圖之drawText,getTextBounds,measureText,FontMetrics,基線(14)
Android繪圖之貝塞爾曲線簡介(15)
Android繪圖之PathMeasure(16)
Android 動態修改漸變 GradientDrawable

❾ Android 怎麼使用Bitmap+Canvas 自適應屏幕

ndroid 使用Bitmap+Canvas自適應屏幕方法如下:

1、首先得先獲取我們的手機屏幕的大小

3、這樣通過這個函困祥羨數返回的Bitmap對象就是可以適應手機屏幕大小的了。。

❿ Android 繪圖之Canvas相關API使用

Android 自定義控制項或多或少都會用到Canvas,那麼我們就需要熟悉它的API。Canvas給我們提供了大量的的DrawXXX方法,通過這些方法我們就可以繪制出我們想要的效果。接下來看看官方是怎麼說的:

大致意思就是說:
Canvas類持有「draw」調用。 要繪制一些東西,你需要4個基本組件:一個點陣圖來保存像素,一張畫布(Canvas)來主持繪圖調用(寫入點陣圖),一個繪圖圖元(如Rect,Path,text,Bitmap)和一支畫筆(描述繪圖的顏色和樣式)。

首先介紹下畫筆(Paint)的常用API:

Paint默認的字體大小為12px,在繪制文本時我們往往要考慮密度density設置合適的字體大小。畫筆的默認顏色為黑色,默認的style為FILL,默認的cap為BUTT,默認的線寬為0。

單一顏色填充Canvas畫布

以上就是大部分的繪制操作,當然還有一些沒介紹到,還有一些需要在API21(5.0)以上才能使用,這個使用到的時候可以弄個小demo看下效果,接下來介紹下針對畫布變換和畫布裁剪做一些介紹。

在學習繪制操作的時候很多地方都使用到了translate 和rotate 這里就不再對它們進行操作

1.畫布scale

2.畫布skew

這里針對Canvas的API進行了一些說明,希望對大家有所幫助。沒有添加完整工程上來,但是每一個方法都是實際跑過的,只需要在onDraw中調用就可以看到效果了。

閱讀全文

與androidcanvas畫布大小相關的資料

熱點內容
exe打開指定文件夾 瀏覽:264
pdf裡面怎麼去水印 瀏覽:845
appleid賬號加密碼 瀏覽:220
蘋果如何下載微倉app 瀏覽:916
迅雷解壓進度為0 瀏覽:859
解壓解惑近義詞 瀏覽:316
壓縮比不一樣燃燒室不一樣 瀏覽:101
androidbutton左對齊 瀏覽:172
怎麼找到學校的伺服器 瀏覽:368
android狀態欄高度是多少 瀏覽:987
linuxcliphp 瀏覽:515
蘿卜源碼如何關閉用戶注冊驗證 瀏覽:756
蘋果手機頭條app怎麼沒有tv 瀏覽:563
電腦qq文件夾怎麼發不出去 瀏覽:614
解壓小游戲測試鑽石劍的硬度 瀏覽:962
java結束函數 瀏覽:622
打開遠程桌面的命令 瀏覽:836
樹莓派如何搭建mqtt伺服器 瀏覽:588
怎麼加密w8文件 瀏覽:609
linuxprogram 瀏覽:708