android 获取手机屏幕高度,Android开发中获取不同手机屏幕的宽度和高度

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

hnyywch

推荐于 2016.04.07

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:44%    等级:13

已帮助:7411人

继承SurfaceView 类写的也可以继承View类写

public class GetWHSurfaceView extends SurfaceView implements Callback,Runnable{

private int textX = 20, textY = 20;

private int screenHeight;

private int screenWidth;

private SurfaceHolder sfh;

private boolean flag;

private Thread th;

//画布

private Canvas canvas;

public GetWHSurfaceView(Context context) {

super(context);

sfh = this.getHolder();

sfh.addCallback(this);

canvas = new Canvas();

Paint paintText;

paintText = new Paint();

this.setKeepScreenOn(true);

setFocusable(true);

setFocusableInTouchMode(true);

}

/**

* 重写触屏事件函数

*/

@Override

public boolean onTouchEvent(MotionEvent event) {

int x = (int)event.getX();

int y = (int)event.getY();

//玩家手指点击屏幕的动作

if (event.getAction() == MotionEvent.ACTION_DOWN) {

textX = x;

textY = y;

//玩家手指抬起离开屏幕的动作

} else if (event.getAction() == MotionEvent.ACTION_MOVE) {

textX = x;

textY = y;

//玩家手指在屏幕上移动的动作

} else if (event.getAction() == MotionEvent.ACTION_UP) {

textX = x;

textY = y;

}

return true;

}

public void myDraw()

{

//绘制背景色

canvas = sfh.lockCanvas();

try {

if(canvas != null)

{

//创建一个画笔的实例

Paint paint = new Paint();

paint.setColor(Color.BLACK);

canvas.drawRect(0, 0, this.getWidth(), this.getHeight(), paint);

//设置画笔的颜色

paint.setColor(Color.WHITE);

//绘制文本

canvas.drawText(String.valueOf(textX), textX, textY, paint);

canvas.drawText(String.valueOf(textY), textX+25, textY, paint);

canvas.drawText(String.valueOf(screenWidth), 280, 20, paint);

canvas.drawText(String.valueOf(screenHeight),280+20, 20, paint);

}

} catch (Exception e) {

}finally

{

sfh.unlockCanvasAndPost(canvas);

}

}

@Override

public void run() {

while(flag)

{

long start = System.currentTimeMillis();

myDraw();

long end = System.currentTimeMillis();

try {

if(end - start < 50)

{

Thread.sleep(50 -(end-start));

System.out.print("run");

}

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

@Override

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

int height) {

// TODO Auto-generated method stub

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

screenHeight = this.getHeight();

screenWidth = this.getWidth();

flag = true;

th = new Thread(this);

th.start();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

flag = false;

}

}

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值