2012-08-14 3 views
1

현재 배경 및 전경 이미지가있는 FrameLayout이 있습니다. 전경 이미지는 알파를 사용하여 투명하게 볼 수 있으며 아래에서 배경을 볼 수 있습니다.전경 이미지의 가로 세로 비율을 유지하는 방법은 무엇입니까?

전경 이미지는 검정색 화면의 trasparent circle으로 구성되어 있기 때문에 원래의 비트 맵과 동일한 종횡비가 필요합니다. 이는 망원경 효과와 유사합니다. 어떤 해상도 호환성을 찾고 있어요.

불행히도, 나는 이것을 달성 할 수 없으며 포 그라운드는 항상 그 원이 뻗어 있음을 보여줍니다.

이것은 XML 코드의 일부입니다 : 3 비율과 16 다른 : 9 비율, 각 나는 또한 두 개의 다른 이미지, 4 중 하나를 제공하는 내 문제를 해결하기 위해 노력하고

<FrameLayout 
    android:id="@+id/layout_parent" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background" 
    android:foreground="@drawable/foreground" 
    android:foregroundGravity="center|fill_horizontal" 
> 

하나는 다른 드로어 블 폴더에 길이가이고 이 아니고 한정자입니다.

/drawable-long/foreground.png (16:9 aspect) 

/drawable-notlong/foreground.png (4:3 aspect) 

여전히 성공하지 못했습니다.

이 효과를 얻는 방법에 대해 알고 있습니까?

감사합니다.

답변

2

전경 또는 배경의 축척 유형을 변경할 수 있다고 생각하지 않습니다.

  1. 놓습니다 FrameLayout에 추가 ImageView 당신의 배경 역할을하고 srcscaleType 이미지를 처리하는 속성을 어떻게 저울 사용 : 내가 추천하는 것은하는 중입니다.

  2. 투명한 원이있는 간단한 검은 색 배경이므로 9 개의 패치로 변환하여 원 주위로 고르게 늘릴 수 있습니다. 원은 축척되지 않지만 검정 영역은 뷰를 채우기 위해 확장됩니다. 원뿐만 아니라 확장 할 필요가있는 경우

번호 1 내 개인 추천입니다.

+0

ImageView를 전체 화면의 전경으로 사용할 수없는 것처럼 보입니다. 나는 배경을 정말로 걱정하지 않습니다. 나는 9 패치 방식을 시도하고 어떻게 진행되는지 알려줄 것입니다. –

+1

왜 첫 번째 작업을 수행 할 수 없습니까? FrameLayout의 마지막 항목으로 배치하면 다른 모든보기 위에 표시됩니다. – kcoppock

+1

새로운 ImageView를 FrameLayout의 마지막 항목으로 사용하면 어떻게 해결할 수 있습니다. 당신의 도움을 주셔서 대단히 감사합니다. 감사합니다. –

2

변경하여 FrameLayout이이 속성 :

android:foregroundGravity="center" 

이 크기를 변경하지의 FrameLayout이 중앙에 전경 당김을 배치합니다.

"center|fill_horizontal" 중앙에 배치하고 스트레치 당신이 원하는 것을 명확하지 않은 FrameLayout이 폭을 채우기 위해 폭 것이다.

+0

그 문제는 모든 가능한 해상도에 대해 동일한 비트 맵을 사용하고 * center * 한정자 만 사용하면 큰 해상도 화면 가운데에 작은 크기의 전경 이미지가 표시됩니다. 화면 너비와 같은 가로 세로 비율로 이미지를 맞추고 싶습니다. –

+0

그런 다음, 전경 이미지가 원이고 (사각형 드로어 가능이라고 가정 할 때),'center | fill_horizontal | fill_vertical'을 시도하십시오. – iTurki

+0

사각형 드로어 블을 사용하면 화면 비율에 맞게 사각형과 원을 늘릴 수 있도록 가로 채우기와 세로 채우기가 채워집니다. 불행히도, 원형은 모양을 잃습니다. –

관련 문제