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

尝试这个

可绘制博士 = getResources().getDrawable(R.drawable.somedrawable); 位图位图 = ((BitmapDrawable) dr).getBitmap(); // 假设要设置大小为 50x50 Drawable d = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap, 50, 50, true));

你也可以使用 drawable.setBounds(0, 0, 50, 50);。但在某些情况下,它可能不适用于某些图像视图。尝试使用两者。

要检查按钮是否被按下,请在 xml 中使用选择器和项目。此链接可能会有所帮助

于 2012-05-04T07:41:44.567 回答