2012-08-13 6 views
2

내 활동의 레이아웃에는 Y가 반복해야하는 배경이 있습니다. 배경을 반복 할 때 X와 Y에서 반복 할 때 아무 문제가 없습니다 (단지 android:tileMode="repeat" 추가). 또한, 안드로이드 API 15 이상이 일을 아무 문제가 없다 :Android TileMode X 또는 Y 만?

RelativeLayout layout = (RelativeLayout) findViewById(R.id.container_layout); 

BitmapDrawable bg = (BitmapDrawable)getResources().getDrawable(R.drawable.my_repeating_bg); 
bg.setTileModeX(TileMode.REPEAT);` 
layout.setBackground(bg); 

그러나 방법 setBackground(<BitmapDrawable>) 안드로이드 API를 사용할 수 없습니다 < 16 나는 단지 X 또는 내 배경을 반복 할 때 무엇을해야 안드로이드 2.3에서 Y로? 감사합니다. . 오후 8시 30 분 P.S. 배경의 너비와 높이는 모두 MATCH_PARENT입니다.

답변

4

그래, 답을 찾았습니다. 난 그냥 버전을 확인하고 적절한 방법을 사용해야합니다.

RelativeLayout layout = (RelativeLayout) fragmentView.findViewById(R.id.container); 
    BitmapDrawable bg = (BitmapDrawable)fragmentView.getResources().getDrawable(R.drawable.background); 
    bg.setTileModeY(TileMode.REPEAT); 
    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) 
     layout.setBackgroundDrawable(bg); 
    else 
     layout.setBackground(bg); 
5

이 형식의 drawable 폴더 (또는 실제로 그릴 수있는 폴더)에 xml 파일을 만들 수 있습니다.

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@drawable/my_repeating_bg" 
    android:tileMode="repeat" /> 

는 다음을 수행하십시오 레이아웃의 폭이 wrap_content로 설정되어있는 경우

layout.setBackgroundResource(R.drawable.name_of_xml_drawable); 

가 만 Y가 타일링됩니다. 레이아웃의 높이가 wrap_content으로 설정된 경우 X 만 바둑판 식으로 배열됩니다. match_parent 또는 fill_parent을 모두 설정하면 X와 Y가 바둑판 식으로 배열됩니다.

+0

내 배경이 모든 화면을 덮을 수 있도록 X'es를 늘리고 Y로이 늘어난 행을 반복하려면 어떻게해야합니까? – lomza

+0

타일과 배경으로는 할 수 없습니다. 이 경우,'BitmapDrawable'을 전체 View의 배경에있는'ImageView'로 설정하십시오. 중첩을 허용하는 'RelativeLayout'또는 다른 레이아웃에 배치해야합니다. – DeeV