0

ImageButtonを作成するために使用しているコードは次のとおりです。私のボタンはすべて動的に作成されます。

        //It is button which inherits from ImageView
        ImageButton button = new ImageButton(this);

        Drawable testPic = getResources().getDrawable(R.drawable.test_pic);

        //button.setBackgroundColor(R.color.transparent_background);//transparent image button button background

        //button.setImageDrawable( testPic ); 
        button.setBackgroundDrawable(testPic);

        //button.setMaxWidth(20);

        button.setOnClickListener(mCorkyListener);
        button.setTag(i);
        //button.setId(i);

        //Controls how the image should be resized or moved to match the size of this ImageView. 
        button.setScaleType( ScaleType.CENTER_INSIDE );

        System.out.println("button with "+button.getMeasuredWidth());
        System.out.println("button height "+button.getMeasuredHeight());

まず最初に System.out が返さbutton with 0 and button height 0れますが、デバイスでは必要以上に大きいことがわかります。このボタンを Scrollview に入れます。

LinearLayout pubLayout = (LinearLayout)findViewById( R.id.myFilesScrollerLayout);

pubLayout.addView( button );

<ScrollView
    android:id="@+id/myFilesScroller"
    android:layout_width="200dp"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_alignParentTop="true"

     >

    <LinearLayout
        android:id="@+id/myFilesScrollerLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
    </LinearLayout>
</ScrollView>

したがって、おそらく ScrollView のサイズに応じて ImageButton のサイズを変更する方法。また、ボタンが押されたことを示す方法は?

ありがとう。

4

1 に答える 1

1

これを試して

Drawable dr = getResources()。getDrawable(R.drawable.somedrawable); ビットマップビットマップ=((BitmapDrawable)dr).getBitmap(); //サイズを50x50に設定するとします。Drawabled=new BitmapDrawable(Bitmap.createScaledBitmap(bitmap、50、50、true));

drawable.setBounds(0、0、50、50);を使用することもできます。ただし、一部のイメージビューでは機能しないシナリオがあります。両方を使用してみてください。

ボタンが押されているかどうかを確認するには、xmlのselector&itemを使用します。このリンクは役立つかもしれません

于 2012-05-04T07:41:44.567 に答える