`

setBackgroundResource和setBackgroundDrawable

 
阅读更多

这两个的效果一样,那么有什么区别呢?

个人认为应该区别主要是在于实际应用中的效率问题。

 

icCallMissed.setBackgroundResource(R.drawable.ic_calllog_missed);

 

我们可以看到它是通过资源文件中去寻找drawable。那么对于经常使用到的图片,我们可以让它作为一个成员变量来使用

即:

在onCreate的时候就读取一次资源文件将它转为Drawable对象。

 

icCallMissed = myContext.getResources().getDrawable(R.drawable.ic_calllog_missed);
 

 

接下去当需要改变背景的时候,我们不需要再去资源文件中去找,而是可以通过:

 

icCallMissed .setBackgroundDrawable(icCallOutgoing);
 

这样应该可以提高效率,不知道您是否同意这样的观点呢?

分享到:
评论
1 楼 IT人_ 2012-10-20  
,嗯,有道理

相关推荐

    Android ImageView Src 和Background 区别

    之前使用Glide的时候被ImageView的图片设置弄混了(很低级的问题,确是经常犯的问题),所以就去看了一下ImageView,补补基础。 首先ImageView有两个显示图片的属性,分别是src...mImageView.setBackgroundDrawable();

    parallaxviewpager-一个可以设置视差背景的ViewPager.zip

    创建了ParallaxViewPager之后,可以使用下面的方法来设置背景,或者也可以xml设置:1) setBackgroundResource(int resid)2) setBackground(Drawable background) or setBackgroundDrawable(Drawable background)3) ...

    Android设置桌面壁纸及恢复默认墙纸.rar

      iv.setBackgroundDrawable(getWallpaper()); //设置ImageView显示的内容为当前墙纸  }  恢复默认的壁纸:  setContentView(R.layout.main);//设置当前屏幕  Button btnClearWall = (Button)findViewById(R.id...

    9patchde的制作

    2. 在代码中设置:通过 `setBackgroundResource()` 或 `setBackgroundDrawable()` 方法设置。 ```java imageView.setBackgroundResource(R.drawable.your_9patch_file); ``` 3. 预览:Android Studio 的 Layout ...

    android中动态更改View背景

    在代码中,你可以通过`ContextCompat.getDrawable()`方法获取Drawable对象,然后调用View的`setBackgroundDrawable()`方法来设置新的背景。 ```java Drawable drawable = ContextCompat.getDrawable(context, R....

    Android应用源码之TextViewBackground.zip

    在Java代码中,我们可以使用`setBackgroundColor()`方法来改变背景颜色,或者使用`setBackgroundResource()`或`setBackgroundDrawable()`来设置资源。例如: ```java TextView textView = findViewById(R.id.my_...

    高仿微信界面

    顶部和底部include的顶部栏和底部栏后面再说。 MainActivity的界面activity_main.xml: <?xml version="1.0" encoding="utf-8"?> android:layout_width="match_parent" android:layout_height="match_parent...

    android自定义TabHost

    tabHost.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF0000"))); // 设置红色背景 ``` 6. **注意的细节**: - 为避免布局重叠,确保TabHost的`android:layout_width`和`android:layout_height...

    安卓Android源码——不用更换图片的点击效果.zip

    如果需要在代码中动态设置按钮的点击效果,可以使用`setBackgroundResource()`或`setBackgroundDrawable()`方法,传入我们自定义的StateListDrawable资源。 7. **优化性能**: 尽管自定义Drawable可以提供丰富的...

    Android 设置颜色的方法总结

    textView.setBackgroundDrawable(blackDrawable); ``` 另外,也可以通过`Resources.getDrawable(int id)`方法获取颜色资源对应的`Drawable`对象: ```java Drawable drawable = getResources().getDrawable(R....

    改变按钮图片

    例如,你可以使用`setImageDrawable()`或`setBackgroundDrawable()`(Android), `setImage(for:)`(iOS), 或者直接修改Unity中Button的Image组件的`sprite`属性。 6. 动态加载资源:在某些情况下,图片可能来自...

    android-EditText边框颜色

    首先,获取`EditText`实例,然后调用`setBackgroundDrawable()`或`setBackgroundResource()`方法: ```java // Java EditText editText = findViewById(R.id.editText); GradientDrawable drawable = ...

    listview保持选中状态

    ((View) ((ListView) parent).getTag()).setBackgroundDrawable(null); } ((ListView) parent).setTag(view); view.setBackgroundResource(R.drawable.listitem_bk); } }; listView.setOnItemClickListener...

    Android 处理OnItemClickListener时关于焦点颜色的设置问题

    categoryTitle.setBackgroundDrawable(null); } // 设置选择单元格的背景色 TextView categoryTitle = (TextView) view; categoryTitle.setTextColor(0XFFFFFFFF); categoryTitle.setBackgroundResource(R....

    Android帧动画、补间动画、属性动画用法详解

    在代码中,可以通过`ImageView`的`setBackgroundDrawable()`方法加载动画,并使用`AnimationDrawable`启动动画: ```java ImageView iv = (ImageView) findViewById(R.id.iv); iv.setBackgroundResource(R.drawable...

    点击换肤例子整体背景更换

    - 对于布局中的局部背景更换,可以获取到对应的View对象,然后调用`setBackgroundResource()`或`setBackgroundDrawable()`方法。 2. **事件监听与响应**: - 需要添加一个点击事件监听器,通常是在Activity或...

Global site tag (gtag.js) - Google Analytics