當前位置:首頁 » 安卓系統 » 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);
}
}
}

熱點內容
三國志戰略版打9級礦什麼配置 發布:2025-05-15 11:41:29 瀏覽:952
安卓加速器怎麼關 發布:2025-05-15 11:38:16 瀏覽:464
密碼鎖壞了如何打開 發布:2025-05-15 11:30:19 瀏覽:837
怎樣增加共享文件夾連接數量 發布:2025-05-15 11:24:50 瀏覽:961
安卓如何關閉單應用音量 發布:2025-05-15 11:22:31 瀏覽:351
抖音電腦後台伺服器中斷 發布:2025-05-15 11:11:59 瀏覽:307
sql2008伺服器 發布:2025-05-15 11:03:27 瀏覽:306
我的世界pe伺服器創造 發布:2025-05-15 10:51:17 瀏覽:608
移動端打吃雞要什麼配置 發布:2025-05-15 10:48:16 瀏覽:756
我的世界哪五個伺服器被炸了 發布:2025-05-15 10:36:16 瀏覽:994