我有一个LinearLayout,其上面有自定义视图。视角比布局高1px。 我希望布局在按下视图或增加焦点时改变背景颜色。
我已经为布局实现了带有drawables的选择器,当我点击布局时,它全部都在变形。但是因为只有1个px可点击空间,我希望我的自定义视图能够更改下面布局的相关属性。
我有什么方法可以做到吗?如果未自定义布局,自定义视图调度是否可以扩展到parrent布局?
我可以轻松地以编程方式更改背景颜色,仅通过访问它的父级点击视图所在的布局,但我希望背景颜色能够在短时间内恢复并返回到它的默认颜色。与ListView项目一样。
由于
答案 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);