我試圖在相對佈局中居中定製視圖。此圖像旋轉,因此它需要位於佈局的中心,因此它不會超出佈局邊界。現在它顯示在左上角。這裏是我的代碼:使用LayoutParams在一個RelativeLayout中定製一個自定義視圖
container = (RelativeLayout) findViewById(R.id.lay_container);
bmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.charlie_sheen);
rotate_view = new RotationView(this, bmap);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
rotate_view.setLayoutParams(params);
container.addView(rotate_view);
這裏是我的親戚XML佈局
<RelativeLayout
android:id="@+id/lay_container"
android:layout_width="200dip"
android:layout_height="200dip"
android:layout_alignParentRight="true"
android:layout_below="@+id/txt_1"
android:layout_marginRight="45dp"
android:layout_marginTop="56dp"
android:padding="10dip" />
你有什麼想法?我知道這個問題可能有一個簡單的解決方案,但我似乎無法找到答案。將LayoutParameter設置爲居中應該將視圖居中放置在右側?
預先感謝任何幫助或建議
他Devunwired,感謝您的幫助。我嘗試了你的建議,而且我仍然遇到同樣的問題。我已經重寫了自定義視圖類中的onMeasure,它比位圖大100px。 (位圖將旋轉,因此它需要一些空間來執行此操作)。我已經在回覆中發佈了代碼。我有一些其他想法: - 我想我可以嘗試添加自定義視圖到我的XML佈局作爲自定義視圖,然後給它充氣 – user1164429 2012-03-04 21:41:44
你可以驗證圖像是否在'RotationView'內部?最簡單的方法是給你的自定義視圖一個背景顏色,這樣你就可以看到它的邊界真正與其父對象的相對位置。我懷疑問題是在'RotationView'內的某個地方。 – Devunwired 2012-03-05 15:56:54