在android中資源檔夾中添加一個新的圖片資源

來源:互聯網
上載者:User

    剛剛看了一下一個幀布局的簡單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) {//實質上是調用了一次handleMessagesendMessageDelayed(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;}}@Overrideprotected 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()  {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubflag = !flag;myHandler.sleep(50);}});}}

七張圖片如下:

mybird1                                                        mybird2                                      mybird3                                               mybird4

 

mybird5                                                       mybird6                                    mybird7

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.