用自定义图片和/或颜色填充Android标签

嘿,我创造了Google的tab layout典范

HelloTabWidget.java:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost();  // The activity TabHost
TabHost.TabSpec spec;  // Resusable TabSpec for each tab
Intent intent;  // Reusable Intent for each tab

// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, ArtistsActivity.class);

// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("Artists",
                  res.getDrawable(R.drawable.ic_tab_artists))
              .setContent(intent);
tabHost.addTab(spec);

// Do the same for the other tabs
intent = new Intent().setClass(this, AlbumsActivity.class);
spec = tabHost.newTabSpec("albums").setIndicator("Albums",
                  res.getDrawable(R.drawable.ic_tab_albums))
              .setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, SongsActivity.class);
spec = tabHost.newTabSpec("songs").setIndicator("Songs",
                  res.getDrawable(R.drawable.ic_tab_songs))
              .setContent(intent);
tabHost.addTab(spec);

tabHost.setCurrentTab(2);

}

我知道如何创建自己的图标来代替他们的灰色和白色麦克风,但是我不知道如何使自定义图标填充整个选项卡.选择选项卡时,它是浅灰色,中间是我的照片,而未选中时,它是深灰色,中间是我的照片.我更喜欢将自己的照片填满整个标签,以获取更多知识;我自己选择的颜色来填充选项卡.

解决方法:

您可以使用setIndicator(View view)通过Tab指示器执行更复杂的操作.

尝试玩这个…

ImageView imgView = new ImageView(this);

// Use imgView.setImageDrawable(Drawable drawable) or
// imgView.setImageBitmap(Bitmap bitmap) to load
// the image you want into imgView

spec = tabHost.newTabSpec("artists").setIndicator(imgView).setContent(intent);

我不确定这是否是您想要的,但是(如果理论上)如果ImageView不适合您,则可以使用任何View类作为指标.

编辑:

我试过了…

    BitmapDrawable bmd = new BitmapDrawable();
    bmd = (BitmapDrawable) res.getDrawable(R.drawable.ic_tab_artists_grey);
    imgView.setImageDrawable(bmd);
上一篇:java-PLAF无法更改按钮颜色


下一篇:Android发布错误:预期颜色资源ID(R.color.),但收到RGB整数