나는 3 개의 탭으로 간단한 TabActivity
을 만들려고 시도했다. 모든 작품 을 제외하고 매니 페스트 파일에 android:minSdkVersion="11"
을 입력하면 아이콘이 표시되지 않습니다. `minSdkVersion = "10"으로 설정하면 모두 잘됩니다.minSdkVersion> 10 인 경우 WidgetTab의 이미지가 표시되지 않는 이유는 무엇입니까?
나는 높고 낮게 보였지만, 무엇이 잘못되었는지를 판단 할 수 없었습니다.
나는 겉으로는 적절한 리소스 디렉토리에 같은 이미지를 넣어 가지고 :
고해상도/당김-hdpi에-V5
고해상도/당김 - LDPI-V5를
고해상도/당김 - MDPI-V5
고해상도/당김-xhdpi-V5
그리고 코드는 간단하다 :
import android.app.TabActivity;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
public class Review extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabs = getTabHost();
getLayoutInflater().inflate(R.layout.main,
tabs.getTabContentView(), true);
Resources resources=getResources();
Log.d("testing", String.format("icon: %d.%d",
resources.getDrawable(R.drawable.review).getIntrinsicWidth(),
resources.getDrawable(R.drawable.review).getIntrinsicHeight()));
TabHost.TabSpec details = tabs.newTabSpec("review"). setContent(R.id.review).
setIndicator(getString(R.string.review),
resources.getDrawable(R.drawable.review));
TabHost.TabSpec gallery=tabs.newTabSpec("gallery").setContent(R.id.photos)
.setIndicator(getString(R.string.gallery),
resources.getDrawable(R.drawable.photos));
TabHost.TabSpec reservation=tabs.newTabSpec("reservation").
setContent(R.id.reservation)
.setIndicator(getString(R.string.reservation),
resources.getDrawable(R.drawable.reservation));
tabs.addTab(details);
tabs.addTab(gallery);
tabs.addTab(reservation);
}
}
이것을 파헤 치면서 안드로이드 2.0 vs 3.0에서 내부적으로 볼 수있는 유일한 차이점은 안드로이드가 012 구현 된 RelativeLayout
대신 LinearLayout
을 사용한다는 것입니다.
Log.d
발견되고 있다는 것을 확신 할 수 있습니다 :
아이콘 : 32.32 예상대로.
왜 안드로이드 2.0에서 3.0으로 변경합니까? 나는 다른 누군가가이 문제에 뛰어 들고 그것이 분명하다는 희망을 가지고 있습니다. 도와 주셔서 대단히 감사합니다!
- UPDATE : 나는 실제로이 코드는 안드로이드 3.0 이상을 위해 만들어진 때 무슨 일이 일어나고 있는지 좀 더 자세히보고로서 내가 오늘 발견
, 나는 사실을 알게 ImageView
'SetIndeicator(string, drawable)
가 호출 될 때 나오게의 각각 TabSpec
에 대해 실제로 설정되지 않으며 실제로는 NULL
(ImageView.mDrawable==null
) 및 INVISBLE
입니다.
드로어 블을 설정하도록 설정하면 과은 ImageView.setVisiblity(View.VISIBLE)
으로 표시됩니다. 그러나 로이드 2.0 하에서 이들은 위의 이미지와 같이 아래의 텍스트 적층 게재 :
<image>
<text>
<image><text>
따라서 상황이 많이 바뀌었고 Android 3.0의 변경 사항을 신중하게 조사해야합니다.
더 자세히 ...
- 최종 업데이트 : 궁극적으로
, 나는이 길을 포기하고 일을하는이 스타일이 변경 아마도 지금은 감가 상각이 작업을 수행하는 다른 더 나은 방법이 있다는 것을 결정 아이콘은 약간 오래된 스타일이다 .