안드로이드 개발 질문/답변
(글 수 45,052)
LayoutInflater inflater1 = getLayoutInflater();
View mTablayout01 = inflater1.inflate(R.layout.tap1_1,(ViewGroup)findViewById(R.drawable.tap1_1));
LayoutInflater inflater2 = getLayoutInflater();
View mTablayout02 = inflater2.inflate(R.layout.tap2_2,(ViewGroup)findViewById(R.drawable.tap2_2));
LayoutInflater inflater3 = getLayoutInflater();
View mTablayout03 = inflater3.inflate(R.layout.tap3_3,(ViewGroup)findViewById(R.drawable.tap3_3));
mTabHost.addTab(mTabHost.newTabSpec("tab_test1")
.setIndicator(mTablayout01)
.setContent(R.id.view1)
);
mTabHost.addTab(mTabHost.newTabSpec("tab_test2")
.setIndicator(mTablayout02)
.setContent(R.id.view2)
);
mTabHost.addTab(mTabHost.newTabSpec("tab_test_3")
.setIndicator(mTablayout03)
.setContent(new Intent(this,maps.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
);
이런식으로 넘기고 탭설정하고
View viewTab1 = findViewById(R.id.ViewTapImage1_1);
View viewTab2 = findViewById(R.id.ViewTapImage1_2);
View viewTab3 = findViewById(R.id.view3);
mTabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
if(tabId.equals("tab_test1"))
{
viewTab2.setBackgroundColor(Color.BLUE);
viewTab2.refreshDrawableState();
}
else if(tabId.equals("tab_test2"))
{
//viewTab2.equals(true);
viewTab2.setBackgroundColor(Color.BLACK);
viewTab2.refreshDrawableState();
}
else
{
viewTab2.setBackgroundColor(Color.CYAN);
viewTab2.refreshDrawableState();
}
}
});
이런식으로 하는데 오류나네요..왜 그런가요??ㅠ
기존 xml파일을 탭 백그라운(아이콘이미지)리소스를...
각텝을 선택했을때 그 탭의 백그라운드 색을 바꾸고 싶은데 잘 안되네요....
어떻게해야하나요..?
View mTablayout01 = inflater1.inflate(R.layout.tap1_1,(ViewGroup)findViewById(R.drawable.tap1_1));
LayoutInflater inflater2 = getLayoutInflater();
View mTablayout02 = inflater2.inflate(R.layout.tap2_2,(ViewGroup)findViewById(R.drawable.tap2_2));
LayoutInflater inflater3 = getLayoutInflater();
View mTablayout03 = inflater3.inflate(R.layout.tap3_3,(ViewGroup)findViewById(R.drawable.tap3_3));
mTabHost.addTab(mTabHost.newTabSpec("tab_test1")
.setIndicator(mTablayout01)
.setContent(R.id.view1)
);
mTabHost.addTab(mTabHost.newTabSpec("tab_test2")
.setIndicator(mTablayout02)
.setContent(R.id.view2)
);
mTabHost.addTab(mTabHost.newTabSpec("tab_test_3")
.setIndicator(mTablayout03)
.setContent(new Intent(this,maps.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
);
이런식으로 넘기고 탭설정하고
View viewTab1 = findViewById(R.id.ViewTapImage1_1);
View viewTab2 = findViewById(R.id.ViewTapImage1_2);
View viewTab3 = findViewById(R.id.view3);
mTabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
if(tabId.equals("tab_test1"))
{
viewTab2.setBackgroundColor(Color.BLUE);
viewTab2.refreshDrawableState();
}
else if(tabId.equals("tab_test2"))
{
//viewTab2.equals(true);
viewTab2.setBackgroundColor(Color.BLACK);
viewTab2.refreshDrawableState();
}
else
{
viewTab2.setBackgroundColor(Color.CYAN);
viewTab2.refreshDrawableState();
}
}
});
이런식으로 하는데 오류나네요..왜 그런가요??ㅠ
기존 xml파일을 탭 백그라운(아이콘이미지)리소스를...
각텝을 선택했을때 그 탭의 백그라운드 색을 바꾸고 싶은데 잘 안되네요....
어떻게해야하나요..?
2010.08.12 09:04:31
그냥가자님 말씀은 res/drawable 폴더에서 이미지 가져와서 쓰실때 그냥 <Selector>태그를 이용한 이미지를 사용하라는 말씀이신듯
예를 들어
button.setImageResource(R.drawable.test);
res/drawable/test.xml
test.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_pressed="false"
android:drawable="@drawable/btn_unselected" />
<item android:state_window_focused="true" android:state_pressed="true"
android:drawable="@drawable/btn_selected" />
<item android:state_focused="true" android:drawable="@drawable/btn_focused" />
</selector>
이런식으로 버튼의 상태에 따른 이미지를 사용하도록 말이죠