Android學習筆記

 

Android學習筆記(陸續添加)

1、通過android sdk manager來安裝SDK時出現問題!!

我終於搞明白了,因爲google被牆了,那些方法都沒有。以下:
藉助自@#¥由@#¥門(英文)這個跨越長城軟件,百度下,我下了一個安裝,然後SDK option裏面代理server填127.0.0.1,代理port填8580, 下面的Force打鉤,再reload就可以了

2、Android SDK manager loading done之後extras什麼都沒有

眼看着它loading完extras那邊還是空空如也開始以爲需要找個翻牆代理後來發現不用那麼麻煩可以直接進行如下設置 Windows在C:\WINDOWS\system32\drivers\etc打開/etc/hosts文件,添加 #google_android更新 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com

3、emulator: ERROR: Unable to load VM from snapshot. The snapshot has been saved for a different hardware configuration.

模擬器:錯誤:無法從虛擬機上加載快照,快照已被保存爲一個不同的硬件配置。(存檔錯誤無法讀取)

解決辦法:
 
Android Virtual Device Manager -> delete AVD -> new AVD
 
重新創建個AVD,解決。

4、報錯:The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (new DialogInterface.OnClickListener(){})

解決方法:

[java] view plaincopy
  1. button.setOnClickListener(new View.OnClickListener() {  
  2.               
  3.             @Override  
  4.             public void onClick(View v) {  
  5.                 // TODO Auto-generated method stub  
  6.                   
  7.             }  
  8.         });  


引入的類不對:
import android.content.DialogInterface.OnClickListener;

應該是View類裏面的OnClickListener

import android.view.View.OnClickListener;

5、Unable to resolve target 'android-9'

解決方案:
修改:default.properties 文件,
最後看了一下androidmainfest。xml中有一行關鍵字
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10" />

還有project.properties中也有關鍵字,也需要改掉:
target=android-10

然後就ok了

上面的10是你電腦上已經有的api版本 ,改成相應的即可

 

6、使用

String[] images = null;
 AssetManager assetsManager = null;

try
  {
         assetsManager = getAssets();
   images = assetsManager.list("");
  } catch (IOException e)
  {
   e.printStackTrace();
  }

images數組的長度比assets裏面所擁有的圖片數量要多三個,打印數組會看到除了assets裏擁有的文件外還有三個分部爲images、webkit、sounds的元素,不明白是什麼原因,先記錄下來。

[java] view plaincopy
  1. //下標是否越界  
[java] view plaincopy
  1. if (currentImg >= images.length)  
  2. {  
  3.     currentImg = 0;  
  4. }  
[java] view plaincopy
  1. //查找下一張圖片                 
[java] view plaincopy
  1. while (!images[currentImg].endsWith(".png")   
  2.         && !images[currentImg].endsWith(".jpg")   
  3.         && !images[currentImg].endsWith(".gif"))  
  4. {  
  5.     currentImg++;  
  6.     if (currentImg >= images.length)  
  7.     {  
  8.         currentImg = 0;  
  9.     }  
  10. }  
  11.   
  12. //聲明流,並以流的方式打開文件  
[java] view plaincopy
  1. InputStream assetFile = null;  
  2. try  
  3. {  
  4.     assetFile = assetsManager.open(images[currentImg++]);  
  5. catch (IOException e)  
  6. {  
  7.     e.printStackTrace();  
  8. }  
  9.   
  10. //在放入ImageView前先清空  
[java] view plaincopy
  1. bitmapDrawable = (BitmapDrawable)image.getDrawable();  
  2. if (bitmapDrawable != null && !bitmapDrawable.getBitmap().isRecycled())  
  3. {  
  4.     bitmapDrawable.getBitmap().recycle();  
  5. }  
[java] view plaincopy
  1. //把流放進ImageView對象中  
[java] view plaincopy
  1. image.setImageBitmap(BitmapFactory.decodeStream(assetFile));  


 7、獲取屏幕分辨率

[java] view plaincopy
  1. DisplayMetrics dm = new DisplayMetrics();  
  2. getWindowManager().getDefaultDisplay().getMetrics(dm); //獲取分辨率  
  3.           
  4. int screenWidth = dm.widthPixels;  
  5. int screenHeight = dm.heightPixels;  

 

8、獲取drawable裏面的圖片並轉化爲Bitmap對象

[java] view plaincopy
  1. Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);  


[java] view plaincopy
  1. bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章