当前位置:首页 » 安卓系统 » android屏幕坐标

android屏幕坐标

发布时间: 2022-05-10 10:48:33

‘壹’ 安卓:如何获取屏幕中一个View的坐标

getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度。
getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值, 非常准确!
getLeft , getTop, getBottom, getRight, 这一组是获取相对在它父亲里的坐标。

‘贰’ android手机屏幕最右下角坐标怎么获取,需要的是动态获取哈,好针对不同屏幕

获取了屏幕大小不就等于获取了坐标么。
Display My_Display=getWindow().getWindowManager().getDefaultDisplay();
int Max_X=My_Display.getWidth();
int Max_Y=My_Display.getHeight();
这个可以加入到方法中人后随时调用,也可以程序初始化的时候响应一次。

‘叁’ android中绘图,坐标默认用的是什么单位

默认单位是px也就是像素,一般不推荐用px。因为跟设备有关系,你可以使用TypedValue这个对象.

下面是这两个的转换函数,您可以先把像素转换成dp

java">publicclassDensityUtil{

/**
*根据手机的分辨率从dp的单位转成为px(像素)
*/
publicstaticintdip2px(Contextcontext,floatdpValue){
finalfloatscale=context.getResources().getDisplayMetrics().density;
return(int)(dpValue*scale+0.5f);
}

/**
*根据手机的分辨率从px(像素)的单位转成为dp
*/
publicstaticintpx2dip(Contextcontext,floatpxValue){
finalfloatscale=context.getResources().getDisplayMetrics().density;
return(int)(pxValue/scale+0.5f);
}
}

一、px

像素,是屏幕上显示数据的最基本的点。

二、dpi

dpi(Dots Per Inch):每英寸点数,也可称为像素密度,即屏幕对角线像素值÷英寸值

比如480x800分辨率4.0英寸的手机计算的DPI=

三、dp

dp(与dip相同):在每英寸160点的显示器上,1dp = 1px,即px = dp(dpi/160)

假设两块屏幕尺寸一样,那屏幕一的dpi值是右边的两倍,如果屏幕一dpi为160,那屏幕二dpi即为320,设置160dp的情况下

屏幕一:160px=160dp(160dpi/160)

屏幕二:320px=160dp(320dpi/160)

根据关系,可得出:

屏幕一控件长度为160px,屏幕二控件长度为320px,让控件长度适应不同屏幕大小,用dp很合适。

四、sp

sp(scaled pixels) 通常用于指定字体大小,当用户修改手机显示字体时,字体大小会随之改变

对于UI布局,要使用dip/dp作为单位,对应字体要是有sp作为单位,尽量少用px作为单位。

注:分辨率与屏幕大小没有关系,屏幕大小是物理外观,而分辨率则是显示能力。


如果您对回答满意,请关注一下姓名中的微博,谢谢。

‘肆’ android怎么获取bitmap左上角坐标

用ImageView来装载这个bitmap并且填满整个ImageView,再用imageview对象来获取坐标值,getX(),getY(),获取的就是左上角的坐标值

‘伍’ Android百度地图点击屏幕获取坐标怎么实现

rue]GeoPoint centerPoint = mapview.getMapCenter();// 地图中心坐标 int tbSpan = mapview.getLatitudeSpan();// 当前纬线的跨度(从地图的上边缘到下边缘) int lrSpan = mapview.getLongitudeSpan();// 当前经度的跨度(从地图的左边缘到地图的右边缘) GeoPoint ltPoint = new GeoPoint(centerPoint.getLatitudeE6() - tbSpan / 2, centerPoint.getLongitudeE6() - lrSpan / 2);// 左上角坐标 GeoPoint rbPoint = new GeoPoint(centerPoint.getLatitudeE6() + tbSpan / 2, centerPoint.getLongitudeE6() + lrSpan / 2);// 右下角坐标

‘陆’ android opengl 已知物体原空间坐标和旋转过的角度,怎么求出它旋转后的空间坐标,并转换成屏幕坐标

讲个思路。
已知空间点,设其向量为V1,已知旋转轴线,设为向量V2(V2以原点为起点)。
设向量V3,V3=V2 X V1,V3为V2与V1的向量积(详情网络),则V3与V2,V1都垂直。设向量V4,V4=V3 X V4,同理,此时V4与V1,V2共面。设未知变量K,V5=K * V3 - V4,则有
| V4 | ^ 2 / | V5 | ^ 2 =cos(A),此时A就是从-V2方向看点逆时针旋转的角度。解K,得V5。设未知数J,k,使J * V4 + K * V2 = V1 ,解得J,K。则J * (V4+v5 ) + K * V2为旋转后的点坐标。
这个应该是空间向量的方法……
另外有线性代数的方法:
设旋转中心向量为(X,Y,Z)方向为A,设矩阵V=(X,Y,Z)T ,U=V/||V||=(X2,Y2,Z2)T,
| 0 , -Z2 , Y2 |
设S=|Z2 , 0 , -X2 | , M=UUT+(COS(A))(I - UUT)+(SIN(A))S
|-Y2, X , 0 |

则R=| M , 0 | 用这个矩阵跟被旋转的点相乘就OK。
| 0, 1|

‘柒’ Android开发中,长按事件怎么获得屏幕坐标点

对于很多游戏使用屏幕控制一般需要考虑长按事件,比如在动作类的游戏中需要长按发射武器,结合Android Button模型,我们实现一个带图片的Button的长按,为了更清晰的显示原理,Android开发网这里使用ImageButton作为基类.
public class RepeatingImageButton extends ImageButton {
private long mStartTime; //记录长按开始
private int mRepeatCount; //重复次数计数
private RepeatListener mListener;
private long mInterval = 500; //Timer触发间隔,即每0.5秒算一次按下

public RepeatingImageButton(Context context) {
this(context, null);
}
public RepeatingImageButton(Context context, AttributeSet attrs) {
this(context, attrs, android.R.attr.imageButtonStyle);
}
public RepeatingImageButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setFocusable(true); //允许获得焦点
setLongClickable(true); //启用长按事件
}

public void setRepeatListener(RepeatListener l, long interval) { //实现重复按下事件listener
mListener = l;
mInterval = interval;
}

@Override
public boolean performLongClick() {
mStartTime = SystemClock.elapsedRealtime();
mRepeatCount = 0;
post(mRepeater);
return true;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) { // 本方法原理同onKeyUp的一样,这里处理屏幕事件,下面的onKeyUp处理Android手机上的物理按键事件
removeCallbacks(mRepeater);
if (mStartTime != 0) {
doRepeat(true);
mStartTime = 0;
}
}
return super.onTouchEvent(event);
}
//处理导航键事件的中键或轨迹球按下事件
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
super.onKeyDown(keyCode, event);
return true;
}
return super.onKeyDown(keyCode, event);
}
//当按键弹起通知长按结束
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:

removeCallbacks(mRepeater); //取消重复listener捕获
if (mStartTime != 0) {
doRepeat(true); //如果长按事件累计时间不为0则说明长按了
mStartTime = 0; //重置长按计时器
}
}
return super.onKeyUp(keyCode, event);
}

private Runnable mRepeater = new Runnable() { //在线程中判断重复
public void run() {
doRepeat(false);
if (isPressed()) {
postDelayed(this, mInterval); //计算长按后延迟下一次累加
}
}
};
private void doRepeat(boolean last) {
long now = SystemClock.elapsedRealtime();
if (mListener != null) {
mListener.onRepeat(this, now - mStartTime, last ? -1 : mRepeatCount++);
}
}

下面是重复Button Listener接口的定义,调用时在Button中先使用setRepeatListener()方法实现RepeatListener接口
public interface RepeatListener {
void onRepeat(View v, long ration, int repeatcount); //参数一为用户传入的Button对象,参数二为延迟的毫秒数,第三位重复次数回调。
}
}

本类大家可以直接在自己的View中implements实现RepeatListener接口即可.

‘捌’ 手机按键精灵,怎么得到屏幕坐标

打开按键精灵——打开或者新建一个脚本——抓抓——点击图像——点击截屏——点击鼠标命令——点击插入

‘玖’ android屏幕坐标怎么算和分辨率有关系的吗

屏幕坐标都是固定的,手机竖屏左上角坐标为(0,0)。
(0 ,0),(Xmax,0 )

(Ymax,0),(Xmax,Ymax)
屏幕分辨率是屏幕图像的精密度,是指显示器所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。

‘拾’ android开发用什么工具查看屏幕点击坐标

开发自然是用代码喽。
public class AbsoluteLayout extends Activity {

private TextView tv;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.tv);
}

// 实现onTouchEvent方法
public boolean onTouchEvent(MotionEvent event) {
// 如果是按下操作
if (event.getAction() == MotionEvent.ACTION_DOWN) {
showXY(event.getX(), event.getY());
}
return super.onTouchEvent(event);
}

// 获取到坐标,进行判断
private void showXY(float x, float y) {
if (x > 215 && y > 215 && x < 250 && y < 250) {
tv.setText("点中了");
} else {
tv.setText("x坐标:" + x + " y坐标:" + y);
}
}
}

热点内容
笔记本电脑台式服务器 发布:2025-05-15 06:40:41 浏览:108
4k无压缩 发布:2025-05-15 06:02:54 浏览:74
hp存储6350 发布:2025-05-15 05:40:41 浏览:233
怎么更改电脑默认缓存位置 发布:2025-05-15 05:39:01 浏览:877
安卓qq公孙离在哪个战区战力最低 发布:2025-05-15 05:38:58 浏览:493
androidffmpeg压缩 发布:2025-05-15 05:37:02 浏览:288
ftp简称是 发布:2025-05-15 05:37:02 浏览:121
光遇发光耳机怎么设置安卓 发布:2025-05-15 05:32:03 浏览:113
台电安卓平板系统太低怎么办 发布:2025-05-15 05:20:00 浏览:510
安装了zlib编译报错 发布:2025-05-15 05:19:56 浏览:168