2012-03-30 2 views
2

Android에서 내 이미지 및 버튼에 문제가 있습니다. 기본적으로 그래픽을 정의 할 때 "setImageDrawable"메서드를 사용합니다.메서드 setImageDrawable/setBackgroundDrawable 이미지 크기 문제

http://img36.imageshack.us/img36/7713/screenshot20120330at211.png

제가 가야하는 동안 : :하지만이 방법은 이미지가이 같은 전망을 '과충전'확대하고 있습니다

http://img850.imageshack.us/img850/883/screenshot20120330at214.png

두 번째 사진은 내가 무엇을 얻을 때 I "setImageDrawable"대신 "setBackgroundDrawable"을 사용하십시오.

 // 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

setScaleType으로 ImageButton의 scaleType을 정의 해보십시오.

코드에서 내 레이아웃을 정의하지 않으려면 가능한 한 많은 레이아웃을 XML 파일에서 수행하여 뷰에서 동작을 완전히 분리하십시오.

절대 픽셀 값이 포함 된 절대 레이아웃을 사용하지 마십시오. xml에서 레이아웃을 정의하면 support multiple screens 가이드에 설명 된대로 dp 단위를 사용하십시오. 현재 레이아웃은 하나의 디스플레이 크기에서만 작동합니다. 코드에서 픽셀 값을 사용하는 경우 장치 밀도에 맞게 크기를 조정해야하는 경우 여러 화면 지원 가이드에서 설명합니다.

다른 작은 개선점은 드로어 블을 설정하는 데 사용하는 방법입니다. 하여 ImageButton는 방법 setImageRessource을 정의, 이것은 당신이 직접 전화를 할 수 있습니다 :

this.btn_connexion_off_480x800.setImageRessource(R.drawable.btn_connexion_off_480x800); 
+0

Sry하지만 Java에서 내 견해를 코딩하고 있습니다. 이유는 XML로 표현할 수 없기 때문입니다. – user1173126

+0

Btw, 나는 "setImageRessource"로 시도하고 동일한 문제가 있습니다. – user1173126

+0

setScaleType을 사용해 보셨습니까? 내 ImageButton에 대한 문제를 해결하는 scaleType – Janusz

2

예, 다음, 그 규모 유형을 설정하지 않고 어떤 고정 된 레이아웃에 SRC을 설정하는 대신의

를 사용하여 이미지 뷰를 하여 ImageButton, 그리고 이미지 뷰의 추가 속성을 설정합니다

this.btn_connexion_off_480x800.setScaleType(ScaleType.FIT_XY); 
+0

Thx와 같이 center 또는 centerInside와 같은 것을 사용하십시오. 그러나 ImageView의 경우에도 여전히 동일한 문제가 발생하며 sac 유형이 작동하지 않습니다. – user1173126

+0

imageview, 문제를 자세히 설명해주세요. 누군가가 당신을 도울 수 있습니다. – jeet

+0

ImageButton의 scaleType을 설정하면 문제가 해결됩니다. 하지만 ImageView의 ImageButton에 ImageView와 동일한 문제가 있습니다. ImageView의 경우에는 scaleType이 작동하지 않습니다. – user1173126

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"

+0

Sry하지만 Java에서 내보기를 코딩하고 있는데 XML을 사용할 수없는 이유가 있습니다. – user1173126