如何设置ImageButton大小以及按下按钮时在添加的图像上显示它

时间:2012-05-04 06:00:56

标签: java android

这是我用来创建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大小。还有如何显示按下按钮?

感谢。

1 个答案:

答案 0 :(得分:1)

试试这个

Drawable dr = getResources()。getDrawable(R.drawable.somedrawable); Bitmap bitmap =((BitmapDrawable)dr).getBitmap(); //假设您要将大小设置为50x50 Drawable d = new BitmapDrawable(Bitmap.createScaledBitmap(bitmap,50,50,true));

您还可以使用drawable.setBounds(0,0,50,50);.但有些情况可能不适用于某些图像视图。尝试使用两者。

要检查按钮是否按下,请使用选择器&amp; xml中的项目。THIS LINK可能有帮助