android canvas 点击放大,android – canvas部分放大

我想部分放大帆布板,因为字母托盘按钮将被固定,而且电路板将被缩放,

部分编码如下所述,屏幕完全画在画布上,可以在底部看到..请帮忙,谢谢你的关注.

public class BoardView extends SurfaceView implements SurfaceHolder.Callback

{

class DrawingThread extends Thread implements OnTouchListener {

public DrawingThread(SurfaceHolder holder, Handler handler) {

mSurfaceHolder = holder;

public void setRunning(boolean b) {

mRun = b;

}

@Override

public void run() {

while (mRun) {

Canvas c = null;

try {

c = mSurfaceHolder.lockCanvas(null);

synchronized (mSurfaceHolder) {

// System.gc();

// c.scale(canvasScaleX, canvasScaleY);

// c.save();

// c.translate(canvasTranslateX, canvasTranslateY);

doDraw(c);

}

updateGame();

} finally {

if (c != null) {

mSurfaceHolder.unlockCanvasAndPost(c);

}

}

}

private void doDraw(Canvas canvas) {

if (ge == null)

return;

Rect bRect = new Rect(0, 0, dims.getTotalWidth(),

dims.getScoreHeight() + dims.getBoardheight());

Drawable drawable = getResources().getDrawable(R.drawable.board);

drawable.setBounds(bRect);

drawable.draw(canvas);

Rect tRect = new Rect(0, dims.getScoreHeight()

+ dims.getBoardheight(), dims.getTotalWidth(),

dims.getTotalHeight());

canvas.drawRect(tRect, fillTrayPaint);

int topHeight = dims.getScoreHeight() + dims.getBoardheight();

int bottom = (dims.getTotalHeight() + 5)

- (dims.getTotalWidth() / Tray.TRAY_SIZE);

Rect rect = new Rect(0, topHeight, dims.getTotalWidth(), bottom - 7);

Drawable drawableTray = getResources()

.getDrawable(R.drawable.strip);

drawableTray.setBounds(rect);

drawableTray.draw(canvas);

drawTray(canvas);

drawBoard(canvas);

// drawScore(canvas);

drawMovingTile(canvas);

}

public BoardView(Context context, AttributeSet attrs) {

super(context, attrs);

SurfaceHolder holder = getHolder();

holder.addCallback(this);

// endTurn=(ImageButton)findViewById(R.id.endturn_button_horizontal);

thread = new DrawingThread(holder, handler);

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

final float scale1 = getResources().getDisplayMetrics().density;

defaultFontSize = (int) (MIN_FONT_DIPS * scale1 + 0.5f);

thread.setDefaultFontSize(defaultFontSize);

dimensions = calculateDimensions(getWidth(), getHeight());

thread.setDimensions(dimensions);

thread.setRunning(true);

// if (thread != null && !thread.isAlive())

thread.start();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

boolean retry = true;

thread.setRunning(false);

while (retry) {

try {

thread.join();

retry = false;

} catch (InterruptedException e) {

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值