2011-04-20 5 views
9

원하는 레이아웃에 대한 솔루션을 찾으려고 할 때 View 클래스의 멤버 인 setScaleX/setScaleY 메서드를 발견했습니다. 내가> = 2.2 응용 프로그램을 개발하고 있어요 이후 setScaleX/setScaleY로 무엇을 할 수 있습니까?

View class doc

는 이제, API 레벨 8에 의해 RelativeLayout의 필터링의 방법을보고, 상기 방법은 페이드 아웃. 그러나 " 클래스에서 상속 된 XML 속성 android.view.View"속성을 보면 android : scaleX/android : scaleY 속성을 계속 사용할 수 있습니다. 불행히도 작동하지 않습니다 이러한 속성을 사용하려고하지 이클립스는 말한다 : "오류 : 패키지 '안드로이드'에 'scaleX가'속성에 대한 검색 리소스 식별자"그래서 보인다

RelativeLayout class doc

을 문서처럼 모순과 scaleX/scaleY는 3.0까지 사용할 수 없거나 뭔가 빠졌는가?

답변

3

here scaleX/scaleY는 Honeycomb로 View 클래스에 추가 된 속성이므로 Froyo에서는 사용할 수 없습니다.

+0

scaleX가 도움 및 scaleY가 해당 링크에서 설명하지 않습니다 바랍니다. – RichieHH

+1

3 년이 넘었습니다. 해당 페이지의 내용이 변경된 것 같습니다 ... – taymless

3

싫다는 문서가 맞다 :

public void setScaleX (float scaleX) Since: API Level 11

프로 요는 API 레벨 8

+0

그래, 11 아래의 API 레벨을 선택하면 메서드가 숨겨집니다.하지만 android.view.View 클래스의 상속 된 XML 특성은 존재하지 않으므로 RelativeLayout 문서에서 볼 수 있듯이 속성은 그대로 있습니다. Btw. [Froyo is level 8] (http://source.android.com/source/build-numbers.html) – taymless

+0

네,하지만이 경우에는 setScaleX 핸들이 될 scaleX 리소스를 찾고 있습니다. 사용할 수 없습니다 (빌드 타겟 중에 설정). 빌드 타겟은 2.2입니다. 3.0이고이 오류가 발생하면 버그입니다. –

+0

나는 서로 과거를 이야기하고 있다고 생각한다;) 빌드 타겟은 2.2이고 스케일링을 위해 메소드 나 xml 속성을 사용할 수 없다. 메소드가 사용 가능하지 않지만 xml 속성이 있다고 말하기 때문에 나는 설명서에 혼란 스러웠다. 그것이 내가 알고 싶었던 것입니다. 그래서 "버그"가 문서에 있습니다 ... – taymless

5

내가 어떤 애니메이션을 재생하기 전에 초기 scaleX를 값으로보기를 설정하려고 할 때 나는 비슷한 문제를 만난 것입니다, 그러나 view.setScaleX()는 API 레벨 11이 @ Dr.J에 대한 찬성이기 때문에 발생합니다.

이전 API 레벨에서 Honeycomb Animation API를 사용하려면 http://nineoldandroids.com/에 NineOldAndroids를 사용해보십시오. 이 opensource 라이브러리를 기반으로 뷰에 초기 scaleX를 제공하는 해결 방법이 있습니다.

ObjectAnimator.ofFloat(getMyButton(), "scaleX", 1f, 0f).setDuration(1).start(); 
+0

Brilliant 내가 할 수 있다면, 당신에게 5 가지 더 많은 +1을 줄 것입니다. 감사. – JRun

1

오래된 API를위한 com.nineoldandroids.view.ViewHelper를 사용

ViewHelper.setScaleY(myButton, 0.01f); 
2

NineOldAndroid가에 따라 사용되지 않는 것입니다은 GitHub의 링크를 NineOldAndroid

사용 Android Support library 대신 NineOldAndroid

의 그래서 당신은 ViewCompat를 사용해야있어 ...에서 ViewHelper

대신 단순히 변경 :

view.setScaleX(2); 

또는

ViewHelper.setScaleX(view,2); 

에 :

ViewCompat.setScaleX(view,2); 

그것이

관련 문제