任意一个控件,button imageView 或layout,在其的xml属性设置中,添加
[java] view plaincopy
android:background="@drawable/bg"
即可实现设置其背景图片为bg.
其中bg.bnp图片存放在drawable目录下。
drawable目录下存放大小图标共用的图片。drawable-hdpi中存放240 WVGA800 的模拟器或板子用的图片。drawable-mdpi存放对应的小图片
[java] view plaincopy
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pic"/>
同样,用src属性,也可设置imageView的图片为pic.png
java代码中设置或更改一个控件的背景图片:
[java] view plaincopy
Resources resources = getContext().getResources()
Drawable btnDrawable = resources.getDrawable(R.drawable.layout_bg)
layout.setBackgroundDrawable(btnDrawable)
程序中,动态修改layout的背景图片,用setBackgroundDrawable()函数实现。设置其背景图片为 layout_bg.png
修改imageView1的背景图片为imageView2的背景图片:
imageView2.getDrawable()可获得图片2的背景。值为Drawable类型
imageView1.setImageDrawable(drawable) 设置imageView1的背景图片
即:
[java] view plaincopy
imageView1.setImageDrawable(imageView2.getDrawable())
当关闭重新运行,它又会自动跳回原始的背景图片。
在开发过程中,由于使用模拟器测试了程序,在首次运行后会将res文件夹下的图片资源文件(如drawable-hdpi、drawable-ldpi和drawable-mdpi)拷贝到bin文件夹下。在替换资源图片后,eclipse并不清楚是否有图片改变,所以会使用原来bin下的res文件夹中的资源文件进行打包,而图片用的还是第一次eclipse所拷贝进去的文件,所以当运行程序后会发现替换资源图片在程序中没起作用。
解决办法:每次运行前,清理项目
动态设置背景图片代码
private int i=0//全局变量定义,初始化
//list数组接收到从文件中读取到的数据
List<String> list=readTxt.getDierguanResource()
//changeBack这个函数用来动态设置背景图片
public void changeBack(int background){
main=(LinearLayout) findViewById(R.id.shizi)
String a=list.get(background)
//获取到的背景图片名as (图片存到res/drawable文件下)
String as = a.split(" ")[1]
//动态获取图片getResources().getIdentifier(as,"drawable",getPackageName())
int resID=getResources().getIdentifier(as,"drawable",getPackageName())
//设置页面背景setBackgroundResource()
main.setBackgroundResource(resID)
}
if(i>=0&&i<list.size()){
changeBack(i);
}
怎样在android中添加背景图片?1.打开左侧的工程文件夹。打开res中的layout,双击main.xml。
2.一般的图片是jpg格式的,要把格式转化为png格式的。
3.把PNG格式的图片拖到工程中res中的drawable-hdpi中
4.在main.xml中的LinearLayout下面,添加Android:background="@drawable/**"。**是添加进来的图片名字。
Android Tips:
在给drawable中添加图片资源时,文件名必须全小写
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)