2013-12-17 4 views
1

나는 11의 밑에 또는 Honeycomb를 위해 작동 할 android에있는 android.widget.ImageView.setTop # 방법을위한 대안을 찾고있다. 그러한 대안을 사용할 수 있습니까?setTop 대안 11 이하

답변

2

Honeycomb (API 레벨 11) 아래에는 setLayoutParams (...)를 사용해야합니다. Android에서보기 위치를 동적으로 설정할 수 있습니다. 예를 들어 ImageView가 XML 파일의 LinearLayout에 있으면 LayoutParams를 통해 위치를 설정할 수 있습니다. 그러나 XML 파일에서 가져온 레이아웃에 따라 LayoutParams를 가져와야합니다. 레이아웃에 따라 다른 LayoutParams가 있습니다. 로이드 문서화 가입일

FrameLayout.LayoutParams layoutParams=new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
    layoutParams.setMargins(int left, int top, int right, int bottom); 
    imageView.setLayoutParams(layoutParams); 
+0

다음과 같은 오류가 발생합니다. 도와 주실 분 있나요? 이미지보기가있는 레이아웃의 유형이 AbsListView.LayoutParams – Aashir

+0

유형에 대해 setMargins (int, int, int, int) 메서드가 정의되지 않았습니다?lineearLayout 또는 상대 레이아웃과 유사합니까? –

+0

in frameLayout입니다. – Aashir

0

: doc

부모이보기 상대의 상단 위치를 설정 여기

설정하는 코드이다. 이 메소드는 레이아웃 시스템에서 호출하기위한 것이므로 일반적으로 레이아웃을 통해 속성을 변경할 수 있으므로 일반적으로 다른 방식으로 호출하면 안됩니다.

이 메소드를 직접 호출하면 안됩니다. 주로 다른 ViewGroup이이 메소드를 일관되게 (framelayout)하지 못하게하는 레이아웃에 대한 접근 방식이 다르기 때문에 호출해야합니다.

@nitesh goel 제안, 여백 또는 패딩을 사용하여 하위보기와 ViewGroup의 원래 위치 사이의 간격을 설정하십시오. doc

사이즈 패딩 및 여백 도면의 크기는 너비와 높이로 표현된다. 뷰는 실제로 두 개의> 너비와 높이 값 쌍을가집니다.

첫 번째 쌍은 측정 된 너비 및 측정 된 높이로 알려져 있습니다. 이 치수는 부모가 뷰 내에서 얼마나 크게 보이고 싶은지를 정의합니다. 자세한 내용은 레이아웃을 참조하십시오. 측정 된 치수는 getMeasuredWidth() 및 getMeasuredHeight()를 호출하여 얻을 수 있습니다.

두 번째 쌍은 너비와 높이 또는 단순히 드로잉 너비와 드로잉 높이로 알려져 있습니다. 이 치수는 화면에서, 그리기 시간 및 레이아웃 이후의 뷰의 실제 크기를 정의합니다. 이 값은 측정 된 너비와 높이와 다를 수 있지만 반드시 다를 필요는 없습니다. width와 height는 getWidth()와 getHeight()를 호출하여 얻을 수 있습니다.

크기를 측정하려면보기에 패딩이 고려됩니다. 패딩은 뷰의 왼쪽, 위쪽, 오른쪽 및 아래쪽 부분의 픽셀 단위로 표시됩니다. 여백은 뷰의 내용을 특정 픽셀만큼 오프셋하는 데 사용할 수 있습니다. 예를 들어 왼쪽 여백이 2이면 왼쪽 가장자리의 오른쪽으로 2 픽셀 씩보기의 내용을 밀어 넣습니다. setPadding (int, int, int, int) 또는 setPaddingRelative (int, int, int, int) 메서드를 사용하여 패딩을 설정할 수 있으며 getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom(), getPaddingStart), getPaddingEnd().

보기에서 패딩을 정의 할 수는 있지만 여백을 지원하지 않습니다. 그러나보기 그룹은 이러한 지원을 제공합니다. 자세한 내용은 ViewGroup 및 ViewGroup.MarginLayoutParams를 참조하십시오.