我的應用程序只是一個帶有縮放和拖動選項的修改ImageViewer。 包含修改後的Imageviewer有一個RelativeLayout(我想用作AbsoluteLayout)。動態使用RelativeLayout並設置邊距px,dp,inch,mm
然後,可以將新元素添加到佈局,以將它們放置在圖像的某些點中。元素的像素位置(x,y)在數據庫中,所以我猜想沒有其他方法可以通過編程方式添加它們,而不是使用XML。
然後每次執行拖動或縮放動作時更新這些元素的位置。
問題是,不知何故圖像的像素與RelativeLayout中的像素不匹配!所以這些項目「或多或少」處於位置但不在適當的位置(距離(0,0)越遠,誤差越大)。
事情我已經試過不已:
嘗試不同的轉換,因爲也許問題與位圖和PCB之間的密度差異:
Resources r = getResources(); float x = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, r.getDisplayMetrics());
嘗試使用佈局中設置邊距的不同方法:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); params.leftMargin = (int) newPosition.x; params.topMargin = (int) newPosition.y; element.setLayoutParams(params);
我也想使用的RelativeLayout的可用選項中的XML,但我真的不能編程方式找到它,但我能找到指定尺寸的路上,我的意思是:
android:layout_marginLeft ="50px" // or "50mm", or dp, or inches...
你好羅莎莉,這個方法的問題是,我只想設置左邊距和邊距,而不是四個邊距。 – 2011-05-17 12:22:25
ok ..然後你可以傳遞一些整數值到左邊和頂部,其他的你可以給零。那麼它會解決我想。 – Lavanya 2011-05-17 12:59:55