我的任務是允許用戶上傳圖片並讓用戶在他點擊的任何位置放置自定義視圖。 (就像在Facebook上發佈圖片)通過獲取觸摸位置並動態地將視圖添加到相對佈局並設置leftMargin和topMargin,很簡單。將視圖置於同一個地方,適用於所有的Android設備
但我想要這個自定義組件在每個Android設備的'確切'相同的位置繪製。
例如;假設你上傳了一張照片到你的個人資料中並給某人加標籤,其他人使用不同的設備查看你的照片時,應該在與圖片完全相同的地方看到標籤。
我知道我也必須考慮屏幕密度,但不知道如何操作x,y。
看的示例屏幕截圖: (藍色盒由用戶點擊放)
這截圖是從與屏幕密度1的試驗裝置,與密度1.5另一設備示出了處於不同位置的藍色框。
(圖片更新:)
這是一個測試代碼:
icon = new ImageView(getActivity());
icon.setBackgroundColor(getResources().getColor(R.color.blue));
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(30, 40);
int density = this.getResources().getDisplayMetrics().density;
params.leftMargin = (int)(posX/density);
params.topMargin = (int)(posY/density);
是posX/Y int?如果是這樣,在將它們轉換爲整數之前,嘗試將它們和密度轉換爲浮點數。 –
這並沒有真正改變。藍色框出現在不同設備的不同位置 –