我的Android图片和按钮出现问题。基本上,当我定义他们的图形时,我使用“setImageDrawable”方法。但是这种方法会使图像放大并“溢出”这样的视图:
http://img36.imageshack.us/img36/7713/screenshot20120330at211.png
虽然我应该得到的是:
http://img850.imageshack.us/img850/883/screenshot20120330at214.png
第二张图是我使用“setBackgroundDrawable”而不是“setImageDrawable”时得到的图片。但这不是正确的方法,所以...这是我的代码,所以你可以看到我如何继续:
// Button "myButton" initialization
this.btn_connexion_off_480x800 = new ImageButton(this.getContext()); // ImageButton instantiation
this.btn_connexion_off_480x800.setBackgroundColor(Color.TRANSPARENT); // Paramétrage du background
this.btn_connexion_off_480x800.setImageDrawable(getResources().getDrawable(R.drawable.btn_connexion_off_480x800)); // Graphic source definition
this.btn_connexion_off_480x800.setPadding(0, 0, 0, 0); // Paramétrage des marges intérieures
this.img_header_480x800.addView(this.btn_connexion_off_480x800, new AbsoluteLayout.LayoutParams(114, 50, 8, 12)); // Binding to the super view and setting coordinates
有谁知道为什么会这样?
答案 0 :(得分:2)
是的,您正在将src设置为某个固定布局而不设置其缩放类型,请执行以下操作:
使用ImageView而不是ImageButton,并设置imageview的额外属性:
this.btn_connexion_off_480x800.setScaleType(ScaleType.FIT_XY);
答案 1 :(得分:0)
尝试使用setScaleType为ImageButton定义scaleType。
我不会在代码中定义我的布局尝试在xml文件中尽可能多地进行布局,以便将行为与视图完全分开。
也不要使用绝对像素值的绝对布局。如果您在xml中使用dp单位定义布局,请参阅support multiple screens指南中的说明。您当前的布局仅适用于一种显示尺寸。如果您在代码中使用像素值,则需要缩放它们以匹配设备密度,这也在支持多屏幕指南中进行了解释。
另一个小改进是您用于设置drawable的方法。 ImageButton还定义了方法setImageRessource,这将允许您直接调用:
this.btn_connexion_off_480x800.setImageRessource(R.drawable.btn_connexion_off_480x800);
答案 2 :(得分:0)
我尝试使用XML
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Image"
android:layout_width="fill_parent"
android:layout_height="225px"
android:scaleType="fitXY"/>
尝试android:scaleType =“centerCrop”