Stack Exchange
image in drawable folder is int data type?
From the web tutorial, I got this code:
public class ImageAdapter extends PagerAdapter
{
    Context context;
    private int[] GalImages = new int[] {R.drawable.one, R.drawable.two, R.drawable.three};

    ImageAdapter(Context context)
    {
        this.context = context;
    }

    @Override
    public int getCount()
    {
        return GalImages.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object)
    {
        return view == ((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position)
    {
        ImageView imageView = new ImageView(context);
        int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);
        imageView.setPadding(padding, padding, padding, padding);
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        imageView.setImageResource(GalImages[position]);
        ((ViewPager) container).addView(imageView, 0);
        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object)
    {
        ((ViewPager) container).removeView((ImageView) object);
    }
}

From the part private int[] GalImages = new int[] {R.drawable.one, R.drawable.two, R.drawable.three};
My question is why the image file can be store in integer data type? and is it possible if I change R.drawable.one, R.drawable.two, R.drawable.three to my other images which are in my device? For example: file:///sdcard/Phone/abc.jpg

That's not the image that's an integer, it's the "file path"/R.drawable path to it that is.

Your Drawable's data type isn't an int; your reference to it is an int, which you can see in R.java.
And no, you cannot change those references at runtime. 
If you peek into your R.java file, you can see that it is declared final.
Example:
public static final int actionBarSize=0x7f010062;
