LinearLayout,顶部有选择器和自定义视图

时间:2012-02-12 22:40:41

标签: android

我有一个LinearLayout,其上面有自定义视图。视角比布局高1px。 我希望布局在按下视图或增加焦点时改变背景颜色。

我已经为布局实现了带有drawables的选择器,当我点击布局时,它全部都在变形。但是因为只有1个px可点击空间,我希望我的自定义视图能够更改下面布局的相关属性。

我有什么方法可以做到吗?如果未自定义布局,自定义视图调度是否可以扩展到parrent布局?

我可以轻松地以编程方式更改背景颜色,仅通过访问它的父级点击视图所在的布局,但我希望背景颜色能够在短时间内恢复并返回到它的默认颜色。与ListView项目一样。

由于

2 个答案:

答案 0 :(得分:1)

我想您只想在单击自定义视图时短时间更改背景颜色或图像。如果这是问题,您可以在自定义视图的onClick()中调用以下方法

public void changeBg(){
  LinearLayout layout=(LinearLayout) findViewById(R.id.your_Layout_id);
  Drawable temp=layout.getBackground();
  layout.setBackgroundResource(R.drawable.your_drawable);
  try{
       Thread.sleep(2000);
  }catch(Exception ex){}
  layout.setBackgroundDrawable(temp);
}

我认为这就是你要找的东西。

答案 1 :(得分:1)

在ui线程中创建处理程序,作为顶部的全局。

Handler handler = new Handler();

然后用来改变你的布局颜色:

    handler.postDelayed(new Runnable()
    {
        @Override
        public void run() 
        {

        }
    }, 1000);