前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在android中资源文件夹中添加一个新的图片资源

在android中资源文件夹中添加一个新的图片资源

作者头像
ccf19881030
发布2019-04-23 15:52:52
3K0
发布2019-04-23 15:52:52
举报
文章被收录于专栏:ccf19881030的博客ccf19881030的博客

刚刚看了一下一个帧布局的简单Android示例,纠结了半天不知道如何将图片加到resource中的drawable中去。     比如在一个TestDemo的Res/drawable文件夹中,新添加一张图片资源要如何添加。

    我直接将图片复制到bin\res\drawable-hdpi或者bin\res\drawable-mdpi中去,然后在eclipse中刷新图片仍然不显示。

    上网找到了关于加载图片资源的问题解决办法:

直接拷贝需要添加的图片资源,然后在Res/drawable文件夹 右键点击 选择“粘贴”即可把图片拷贝进去。

下面是一个简单的帧布局Android应用实例,实现一只小鸟飞翔的动画效果,参考了《大话企业级Android应用开发实战》15.2.5帧布局(FrameLayout) P110-113页。代码如下:

代码语言:javascript
复制
package com.ccf.birdframe;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.view.Menu;
import android.view.View;
import android.widget.FrameLayout;

public class BirdActivity extends Activity {
	FrameLayout frame = null;
	private boolean  flag = true;
	//由该类两个方法间的循环调用,实现界面不断更新
	class MyHandler extends Handler{
		int i = 0;
		public void handleMessage(Message msg) {
			i++;
			//总共7幅图,依次显示
			show(i % 7);
			//调用sleep函数
			sleep(50);
		}
		public void sleep(long delayMillis) {
			//判断是否继续飞翔
			if(flag) {
				//实质上是调用了一次handleMessage
				sendMessageDelayed(obtainMessage(0), delayMillis);
			}
		}	
	}
	
	//该方法是被调用以更新帧布局的前景图片
	void show(int j) {
		//获取七张图片
		Drawable mybird1 = getResources().getDrawable(R.drawable.mybird1);
		Drawable mybird2 = getResources().getDrawable(R.drawable.mybird2);
		Drawable mybird3 = getResources().getDrawable(R.drawable.mybird3);
		Drawable mybird4 = getResources().getDrawable(R.drawable.mybird4);
		Drawable mybird5 = getResources().getDrawable(R.drawable.mybird5);
		Drawable mybird6 = getResources().getDrawable(R.drawable.mybird6);
		Drawable mybird7 = getResources().getDrawable(R.drawable.mybird7);
		//不同的情况,设置不同的前景
		switch(j) {
		     case 0:
		    	  frame.setForeground(mybird1);
		    	  break;
		     case 1:
		    	 frame.setForeground(mybird2);
		    	 break;
		     case 2:
		    	 frame.setForeground(mybird3);
		    	 break;
		     case 3:
		    	 frame.setForeground(mybird4);
		    	 break;
		     case 4:
		    	 frame.setForeground(mybird5);
		    	 break;
		     case 5:
		    	 frame.setForeground(mybird6);
		    	 break;
		     case 6:
		    	 frame.setForeground(mybird7);
		    	 break;
		}
	}
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_bird);
		frame = (FrameLayout)findViewById(R.id.frame);
		//创建一个Handler子类对象,要调用其方法
		final MyHandler myHandler = new MyHandler();
		myHandler.sleep(50);
		//为frame设置单击事件,当其被击中时,在飞翔于暂停之间切换
		frame.setOnClickListener(new View.OnClickListener()  {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
					flag = !flag;
					myHandler.sleep(50);
			}
		});
	}
}

七张图片如下:

mybird1                                                        mybird2                                      mybird3                                               mybird4

mybird5                                                       mybird6                                    mybird7

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年05月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档