0

我正在尝试实现此代码:

package fortyonepost.com.iapa;  

import android.app.Activity;  
import android.graphics.Bitmap;  
import android.graphics.BitmapFactory;  
import android.os.Bundle;  
import android.util.Log;  

public class ImageAsPixelArray extends Activity  
{  
//a Bitmap that will act as a handle to the image  
private Bitmap bmp;  

//an integer array that will store ARGB pixel values  
private int[][] rgbValues;  

/** Called when the activity is first created. */  
@Override  
public void onCreate(Bundle savedInstanceState)  
{  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  

    //load the image and use the bmp object to access it  
    bmp = BitmapFactory.decodeResource(getResources(), R.drawable.four_colors);  

    //define the array size  
    rgbValues = new int[bmp.getWidth()][bmp.getHeight()];  

    //Print in LogCat's console each of one the RGB and alpha values from the 4 corners of the image  
    //Top Left  
    Log.i("Pixel Value", "Top Left pixel: " + Integer.toHexString(bmp.getPixel(0, 0)));  
    //Top Right  
    Log.i("Pixel Value", "Top Right pixel: " + Integer.toHexString(bmp.getPixel(31, 0)));  
    //Bottom Left  
    Log.i("Pixel Value", "Bottom Left pixel: " + Integer.toHexString(bmp.getPixel(0, 31)));  
    //Bottom Right  
    Log.i("Pixel Value", "Bottom Right pixel: " + Integer.toHexString(bmp.getPixel(31, 31)));  

    //get the ARGB value from each pixel of the image and store it into the array  
    for(int i=0; i < bmp.getWidth(); i++)  
    {  
        for(int j=0; j < bmp.getHeight(); j++)  
        {  
            //This is a great opportunity to filter the ARGB values  
            rgbValues[i][j] = bmp.getPixel(i, j);  
        }  
    }  

    //Do something with the ARGB value array  
}  
}  

}

我似乎无法弄清楚这行代码做了什么 bmp = BitmapFactory.decodeResource(getResources(), R.drawable.four_colors);
当我尝试实现它时,eclipse 会说它找不到four_colors 是什么,我不知道它是什么并且似乎无法弄清楚。小伙伴们知道是什么吗?以及应该如何使用?预先感谢

4

3 回答 3

5

R 是一个自动生成的文件,用于跟踪项目中的资源。可绘制意味着资源是可绘制类型,通常(但不总是)意味着资源位于您的 - 文件夹之一中res/drawables,例如res/drawables_xhdpi. Four_colors 指的是资源名称,通常表示您所指的文件是一个名为“four_colors”的文件(例如PNG 文件),位于res/drawables-xhdpi 文件夹中。

因此,four_colors 指的是(在这种情况下)您的应用程序尝试加载的可绘制对象的名称。

当 Eclipse 说它找不到资源时,这意味着该资源没有包含在应该包含它的项目中。例如,您复制了一些代码,但没有复制代码中提到的可绘制对象。

这条线BitmapFactory.decodeResource(...)完全按照它所说的去做;它将编码的图像解码为位图,这是 Android 可以实际显示的。通常,当您使用位图时,它会在后台进行这种解码;这里是手动完成的。

于 2012-09-16T22:06:56.970 回答
1

您需要下载图像并将其放入您的./res/drawable文件夹中。请务必右键单击该项目并选择刷新。

于 2012-09-17T02:54:12.903 回答
1

Four_colors 是图像的名称。你必须将图像放在 res / drawable 图像应该有名称four_colors.jpg

于 2016-08-10T17:24:21.937 回答