`
u011721609
  • 浏览: 45453 次
社区版块
存档分类
最新评论

动态改变LinearLayout的背景

 
阅读更多

背景:四个LinearLayout,每个LinearLayout里都包含textView\EditText等控件;实现每个editText获得焦点的时候 LinearLayout的背景状态也响应地改变;


实现:1、LinearLayout需要的不同的背景状态用单独的selector保存,设置默认状态和改变状态;

2、使用addStatesFromChildren来改变LinearLayout的状态;系统自动根据LinearLayout的状态来改变 LinearLayout的背景状态;

总结:我是在实战项目中遇到的这个问题的,当时是想改变LinearLayout的背景图片来标记用户当前选中的是哪个editText,显示突出效果;但是在网上找了很久都没有找到相关实现方法;自己也尝试用代码来实现,但是LinearLayout的状态在代码中标记好像也不管用;终于在http://blog.csdn.net/eyu8874521/article/details/8076955中找到了addStatesFromChildren的实现方法,然后试了就成功了。

addStatesFromChildren在API中的解释是Sets whether this ViewGroup's drawable states also include its children's drawable states.个人理解是,父控件的状态随子控件的状态改变而改变;所以我们可以使用addStatesFromChildren来控制布局管理器的状态,从而改变布局管理器的背景图片。

分享到:
评论

相关推荐

    tabhost 动态改变tab的背景图

    这篇博客“tabhost 动态改变tab的背景图”探讨了如何在运行时动态地更改TabHost中的各个tab的背景图像。这在设计用户界面时特别有用,因为它允许开发者根据用户的交互或特定条件来调整应用的视觉风格。 首先,我们...

    Android 动态设置程序activity背景图片源码

    要动态改变Activity的背景,我们实际上是在修改根布局或者Activity窗口的背景。 在源码实现过程中,有几种常见的方法: 1. **使用XML布局**:在布局文件中,我们可以为根布局(如LinearLayout、RelativeLayout等)...

    listview中改变item背景颜色

    // 设置背景颜色,这里可以使用变量来动态改变颜色 itemView.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.custom_color)); // ... return convertView; } } ``` 2. 使用ListView的...

    动态生成按钮,点击动态修改按钮背景图片

    在Android开发中,动态生成按钮并实现点击后改变按钮背景图片是一种常见的需求,尤其是在创建自定义界面或交互效果时。这个程序的核心知识点包括Android布局动态创建、事件监听以及资源管理。下面将对这些方面进行...

    SlidingDrawer显示时linearLayout组件不可见

    此外,如果在代码中动态改变了 `SlidingDrawer` 或 `LinearLayout` 的属性,比如隐藏或显示,这可能也会导致问题。确保在适当的时机调用 `SlidingDrawer.open()` 和 `SlidingDrawer.close()` 方法。 最后,考虑到 `...

    一款加强的百分比布局,支持LinearLayout

    实现这种效果的方法多种多样,可以使用自定义头部视图、GradientDrawable或者利用属性动画来动态改变颜色值。 "仿商城标题栏滑动颜色渐变效果的实现"意味着这个项目或教程将指导我们如何在Android应用中复制这种...

    自定义的Dialog(使用的Linearlayout作为dialog)

    这包括改变Dialog的背景、边框、字体颜色等。通过调用`setStyle(STYLE_NO_FRAME, R.style.MyCustomDialogTheme)`,可以去除默认的Dialog样式并应用自定义主题。 6. 处理Dialog与Activity的生命周期: 自定义Dialog...

    ViewPager+LinearLayout实现Tab,且有未读提示

    为了使`ViewPager`和`LinearLayout`之间的交互更加顺畅,我们可以监听`ViewPager`的页面改变事件,当用户切换Tab时,同步更新Tab上的未读消息状态。这可以通过实现`ViewPager.OnPageChangeListener`并重写`...

    linearlayout+imageview+textview实现底部导航栏.zip

    这允许根据按钮的状态(如被点击或未点击)改变其背景色或图标的颜色。 7. **OnClickListener**:实现按钮的点击事件监听,通常需要为每个ImageView或包含ImageView的View设置OnClickListener,当用户点击时,触发...

    Android布局之LinearLayout自定义高亮背景的方法

    选择器是Android中用于动态改变视图背景的工具,它可以基于视图的状态(如按下、聚焦等)显示不同的图像。在res/drawable目录下创建名为linearlayout_background.xml的文件,内容如下: ```xml ...

    扩展LinearLayout以及从xml中加载menu,selector的使用

    在视图的背景属性中引用这个选择器,视图就会根据其当前状态显示相应的Drawable。例如,对于一个Button,我们可以在XML布局文件中设置android:background="@drawable/button_selector"。 以下是一个简单的自定义...

    Android底部导航栏LinearLayout版

    通过设置`orientation`属性,可以改变布局的方向,例如`android:orientation="vertical"`表示子视图从上到下排列,`android:orientation="horizontal"`则表示从左到右排列。 二、底部导航栏设计原则 底部导航栏通常...

    android 仿微信6.0滑动可改变底部背景的透明度

    在Android开发中,微信6.0引入了一个独特的用户体验特性,即滑动时可改变底部背景的透明度。这个功能在用户上下滑动屏幕时,会动态调整底部导航栏的透明度,增强了应用的沉浸感。要实现这样的效果,开发者需要掌握...

    android Activty背景更换

    如果你需要在运行时动态改变Activity的背景,可以使用Java或Kotlin代码来实现。例如,在Activity的`onCreate()`方法中: ```java // Java getWindow().setBackgroundDrawableResource(R.drawable.new_background); ...

    android应用程序实现更换自己的背景图片

    4. **选择器(Selector)**:如果希望根据状态(如点击、焦点等)改变背景,可以使用`StateListDrawable`,它是一个可以根据控件状态改变显示图像的资源。在`res/drawable`目录下创建XML文件定义选择器。 5. **...

    android更改背景

    在代码中,你可以使用`View`类的`setBackgroundColor()`方法动态改变背景颜色: ```java myView.setBackgroundColor(ContextCompat.getColor(context, R.color.my_background_color)); ``` 或者设置图片背景: ...

    更换背景图片(Android)

    3. **Java代码动态更换**:在运行时,可以通过Java代码动态改变View的背景图片。首先,获取到你要更改背景的View,然后调用`setBackgroundResource()`方法。以下是一个例子: ```java ImageView imageView = ...

    Android中使用LinearLayout完成的四书五经首界面的代码清单 .pdf

    AlphaAnimation允许我们改变视图的透明度,这里的参数`0.0f`和`1.0f`分别代表动画开始和结束时的透明度,`setDuration(5000)`设置了动画的持续时间,即5秒钟。然后,我们为动画添加了一个监听器,当动画结束时,通过...

    Android中使用LinearLayout完成的四书五经首界面教学案例要求说明.pdf

    2. 在LinearLayout中添加ImageView,设置其src为“四书五经”背景图片,并设置初始透明度为0。 3. 使用AnimationUtils.loadAnimation()加载Alpha动画资源,然后在ImageView上启动动画。 4. 创建两个TextView,分别...

    安卓Android源码——LinearLayoutSample.rar

    4. **事件处理**:可能有对应的Java或Kotlin代码处理点击事件,改变LinearLayout或其子视图的状态。 5. **动态添加/移除视图**:观察代码如何在运行时动态操作LinearLayout的子视图,以实现交互式功能。 学习这个...

Global site tag (gtag.js) - Google Analytics