我一直在尝试用 3 Tabs 创建一个简单的 < code> Tabactivity code > code> 。 如果我将 < code> 和roid: minSdkVersion="11" 放到宣言文件中, 图标将不显示。 如果我设置“ minSdkVersion=” 10, 图标将全部完好 。
I have looked high and low, but I have not been able to determine what is wrong.
I have put the same images in the seemingly appropriate resource directories:
res/drawable-hdpi-v5
res/drawable-ldpi-v5
res/drawable-mdpi-v5
res/drawable-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和3.0下,Android使用 RelativeLayout
,而不是在2.0执行中使用 LineearLayout
。
只要确定正在找到图标图像, 上面的 Log.d
显示 :
icon: 32.32 , 因为它应该如此。
为何从2.0机器人变成3.0机器人???? 我希望有人碰过这个,而且很明显。 非常感谢您的帮助!
-- -- 更新:
今天我发现,随着我更仔细地观察了当这个代码是为机器人3.0+而建时实际发生的情况,我了解到,当每个 SetIndeicator(字符串、可绘图)
被调用时,产生的 ImageView
< /code> (代码>SetIndeicator(字符串、可绘图) 实际上是从未设置的,而且实际上是 NULL
( ImageView.mDrowable
) ( < code>ImageView.mnull )和 > INISBle
。
如果我强行设定这些绘图可设定, 和 调用 ImaageView.set Visibliity(View. Visible)
就会出现。 然而,在2.0和2.0下,它们似乎堆叠了上面的图像和下面的文字,如:
<image>
<text>
和3.0,它们(在被强迫如上)并肩出现,如:
因此,事情似乎发生了很大变化,我需要更仔细地调查3.0和3.0的变化。
继续收听更多...
- 最后更新:
最终,我放弃了这条途径,决定这种做事方式改变了,现在也许已经折旧了,还有其他更好的方法来这样做,而图标的风格也有点老了。