android - Wrap_content doesn't work on RelativeLayout : Action bar custom View -
i have created custom layout action bar : add code on activity :
layoutinflater inflater = (layoutinflater)getsystemservice (context.layout_inflater_service); view actionbarview = inflater.inflate (r.layout.main_actionbar, null); getsupportactionbar ().setcustomview (actionbarview);
and main_actionbar.xml layout :
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:style="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" > <relativelayout android:id="@+id/lefticons" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_toleftof="@+id/empty" android:paddingtop="4dp" android:paddingbottom="4dp" android:background="@drawable/uiclickable_gray_states" android:layout_alignparentleft="true" > <imageview android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center_vertical" android:layout_marginright="5dp" android:src="@drawable/icon_back" /> <!-- problem here --> <imageview android:id="@+id/thumbnail" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_torightof="@+id/back" android:paddingtop="5dp" android:paddingbottom="5dp" android:src="@drawable/bg" android:scaletype="fitxy" android:adjustviewbounds="true" /> </relativelayout> <view android:id="@+id/empty" android:layout_width="100dp" android:layout_height="match_parent" android:background="@color/black_transparent" android:layout_alignparentright="true" /> </relativelayout>
my problem @+id/thumbnail
have it's height match_parent
, have it's width equals height. means : height == match_parent , width == height
, can have square image.
it appears cannot done xml, created (with of tutorials on net) subclass of imageview , did without positive results :
@override protected void onmeasure (int widthmeasurespec, int heightmeasurespec) { //int width = measurewidth (widthmeasurespec); int height = measureheight (heightmeasurespec); setmeasureddimension (height, height); } private int measureheight (int measurespecheight) { int result; int specmode = measurespec.getmode (measurespecheight); int specsize = measurespec.getsize (measurespecheight); if (specmode == measurespec.exactly) { // told how big result = specsize; } else if (specmode == measurespec.at_most) { // child can large wants specified size. result = specsize; } else { // measure text (beware: ascent negative number) result = canvassize; } return (result + 2); }
am doing wrong there ? thank you.
Comments
Post a Comment