Android学习笔记

来源:互联网 发布:充电软件 编辑:程序博客网 时间:2024/06/16 13:32
 

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);  

原创粉丝点击