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


    文章结束给大家来个程序员笑话:[M]

        刚刚看了一下一个帧布局的简略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页。代码如下:

    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

        图片和布局图片和布局图片和布局

    文章结束给大家分享下程序员的一些笑话语录:  一边用着越狱的ip,一边拜乔帮主的果粉自以为是果粉,其实在乔帮主的眼里是不折不扣的叛徒。

  • 相关阅读:
    zabbix 4.0 监控磁盘IO的实施笔记
    梅登黑德定位系统
    sdrplay sdr 支持的sample rate
    记录一下几个中移动可以PING的检测地址及部份DNS设置
    升级mariadb 10后目录权限问题的笔记
    C#单独启动进程的几种方式及使用特点(使用不当导致端口无法释放)
    SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法
    C# 处理大量数据的技巧
    C# 几种集合性能比较
    WPF学习网址整理
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3093647.html
Copyright © 2020-2023  润新知