ImageView背景onclick

时间:2012-12-19 12:06:43

标签: android background imageview drawable edit


我的应用程序连续有5个“标签”(图像视图),我为所有这些设备制作了onClick方法,因为当您点击它们时,它们会将URL更改为我的网页视图。 (只是解释所以你得到了应用程序的想法) 我想改变我所在的“标签”(图像视图)上的背景(比如tab1),当你点击另一个标签(例如tab4)时,tab1上的背景消失并显示在tab4上我我是android和java的新手,所以请在这里和我一起玩。谢谢!
代码;

public void onWelcome(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL1");
        ImageView imgV = (ImageView) findViewById(R.id.tab1);
        imgV.setImageDrawable(Drawable drawable); /*i do not understand this line, someone said this is how it's done*/
    }
    public void onProgram(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL2");
    }
    public void onNews(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL3");
    }
    public void onContact(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL4");
    }
    public void onPictures(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL5");
    }

正如我所说,我不明白如何使用这种方法.setImageDrawable(Drawable drawable);

我在drawable中有一个名为img_selected的图像,我会在XML文件中写"android:background="@drawable/img_selected"

我在onclick方法中如何做同样的事情?当我点击另一个标签时如何摆脱它?

非常感谢您的回答!

2 个答案:

答案 0 :(得分:1)

这些方法的便利之处在于点击的视图已经通过。所以你需要对视图做的任何事情都可以通过参数完成。 (这里是View V

public void onWelcome(View V)
    {
        WebView htmlContent = (WebView) findViewById(R.id.webViewer);
        htmlContent.loadUrl("URL1");
        V.setImageResource(R.drawable.img_selected); 
    }

这很简单。与findViewById非常相似,该方法会将视图的图像资源设置为传入的id。为了在代码中引用特定的drawable,您可以使用上面的内容。

答案 1 :(得分:0)

您的主要活动通过

实现
TabHostActivity extends TabActivity implements OnTabChangeListener
{ 
     tabHost.setOnTabChangedListener(this);
     tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#FFA500")); // selected
     tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).getLayoutParams().height = 70;
}