これが私のButton
convertView = mInflater.inflate(R.layout.guide_view_image_item, null);
viewHolder = new ViewHolder();
viewHolder.myButton = (Button) convertView.findViewById(R.id.btn_goto_loginview);
中身guide_view_image_item.xml
付きはこちらbtn_goto_loginview
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<ImageView
android:id="@+id/imgView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_delete" >
</ImageView>
<Button
android:id="@+id/btn_goto_loginview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/skep_button_in_guide_page"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
skep_button_in_guide_page は 182*182 PNG (32 ビット カラー) 6.10Kb 画像です
私のプログラムは正常に動作しますが、myButton が大きすぎます!(私の ScreenWidth は 480 で、このボタンの幅は私の ScreenWidth の半分をカバーしています)
それから私は使用します
RelativeLayout.LayoutParams myButtonLayout = (RelativeLayout.LayoutParams) viewHolder.myButton.getLayoutParams();
myButtonLayout.width
&の両方myButtonLayout.height
が -2 に等しいことがわかりました。おそらく WRAP_CONTENT を意味していると思います。それから私は使用します
BitmapFactory.Options buttonOptions = new BitmapFactory.Options();
imageOptions.inJustDecodeBounds = true;
BitmapFactory.decodeResource(EngageApp.getIns().getResources(), R.drawable.skep_button_normal, buttonOptions);
次に、buttonOptions.outWidth
&buttonOptions.outHeight
両方が 273 に等しいことがわかったので、画面に表示されるのは実際の (実際の) 幅だと思います。奇妙なことに、273 はどこから来たのですか? それは182である必要があります..
最後に、これを使用する必要があります。
RelativeLayout.LayoutParams myButtonLayout = (RelativeLayout.LayoutParams) viewHolder.myButton.getLayoutParams();
myButtonLayout.width = 182;
myButtonLayout.height = 182;
viewHolder.myButton.setLayoutParams(myButtonLayout);
幅と高さを 182 に設定する
次に、すべて問題ありません。myButton が小さくなりました。これが私の正確な目的です。しかし、それがこの問題を解決する正しい方法だとは思いません。
誰でも私を助けることができますか?? 前もって感謝します。
私の説明はわかりにくいかもしれませんが、もっと明確にしましょう。
まず、私の画像は 182 幅で、WRAP_CONTENT を使用しています。なぜ私のボタンは 480 幅の画面に 182 幅で直接表示されないのですか。
次に、「decodeResource」を使用すると 273 になったのはなぜですか? 273 は画像の幅ではありませんが (182 は、この数字がどこから来たのかさえわかりません)、ボタンが実際に表示している幅です。これを説明してください。