android畫布
Ⅰ android canvas有層的概念么怎麼定義多層,我定義了兩個畫布,但是只顯示其中一個畫布的內容。
兩個畫布是重疊的么?沒有重疊的話可以寫到xml里聲明為組件
Ⅱ android中paint如何設置背景圖片
1.創建一個背景圖大小的Bitmap Bitmap bitmap=Bitmap.createBitmap(X, Y, Config.ARGB_8888);
2.Canvas canvas=new Canvas(bitmap); //創建畫布Paint paint=new Paint(); //畫筆
3。在canvas上畫東西取得背景圖片的Bitmap canvas.drawBitmap(backgroundBitmap, Rect , Rect , paint);
按照上面的步驟就可以設置背景圖片了
Ⅲ android 我用一張圖片做畫布,要在這張圖片上畫三個矩形 可是卻只畫出一個矩形
你的方法不對,drawRect(left, top, right, bottom, paint) 這個方法本來就是畫矩形的,其中上下左右四個坐標點代表它的四個頂點。
Ⅳ Android 關於畫布canvas刷新的問題
java">SurfaceHoldersh=SomeView.this.getHolder();
Canvascanvas=sh.lockCanvas();
try{
synchronized(sh){
onDraw(canvas);
}
}catch(Exceptione){
e.printStackTrace();
}finally{
if(null!=canvas){
sh.unlockCanvasAndPost(canvas);
}
}
Ⅳ Android繪制圖片的幾種方式
在android中做圖像鏡像有很多方法,今天算是學習了!
兩種方法如下:
復制代碼 代碼如下:
//方法一
Matrix matrix = new Matrix();
matrix.postScale(leftOrRight, 1, bmpW/2, bmpH/2);//前兩個是xy變換,後兩個是對稱軸中心點
matrix.postTranslate(x, y);
canvas.drawBitmap(bmpLuffy[0], matrix, paint);
//方法二
// canvas.save();
// canvas.scale(-1, 1, x + bmpLuffy[0].getWidth() / 2, y + bmpLuffy[0].getHeight() / 2);
// canvas.drawBitmap(bmpLuffy[0], x, y, paint);
// canvas.restore();
方法一,使用矩陣的方式(3x3)矩陣:
1、先使用postScale的方式將圖片以點(bmpW/2,bmpH/2)為中心,以x=bmpW/2為對稱軸翻轉;
2、使用postTranslate,將圖片移到(x,y)坐標
方法二,畫布翻轉(略)
注意如下問題:
對於其中的bmpW和bmpH是指所用圖片的寬高,需要使用圖片bmp.getWidth()和bmp.getHeight()獲取,
不能使用PC上看到的大小,否則可能會出現錯位!
Ⅵ android 畫圖片的幾種方法
方法:
1.使用Xfermode 兩圖相交方式
2.通過裁剪畫布區域實現指定形狀的圖形
3.使用BitmapShader
Ⅶ android開發問題: 在Activity主界面繪制畫布,可是它把整個窗口都覆蓋掉了,怎麼設定畫布的窗口大小呢(
你是說View占滿了整個屏幕嗎?這樣的話就只能在layout中寫一個布局文件,將View以一種組件的方式聲明到.xml文件中,然後你可以在它的上下中聲明其他的button或者textview或者ImageButton等。
Ⅷ android canvas一定要設置具體的畫布嗎canvas是畫在屏幕上還是畫在bitmap上求詳解
簡短的說就像text框要輸入文字一樣,你必須先讓text取得焦點,獲得游標才能進行輸入
bitmap就像畫布,canvas就像畫筆。要畫畫就要知道畫在哪裡,所以必須要畫布。
view的onDraw的canvas是花在view的背景上,也是類似bitmap上。
緩沖是在另一個後台bitmap上畫好在進行展示
以上代表個人通俗理解只做參考理解,不是標准
Ⅸ android畫布
canvas.drawRect(100,100,100,100, paint); 坐標不對,沒有畫開
Ⅹ 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);
}
}