黑马程序员技术交流社区

标题: 帮忙看下代码:BitmapFactory.decodeResource怎么得不到值? [打印本页]

作者: jessezwd    时间: 2014-9-20 17:01
标题: 帮忙看下代码:BitmapFactory.decodeResource怎么得不到值?
刚学android,很简单的一个例子,帮忙看下代码,myImage为什么得不到值?(图片存在,r.id.iv_images也没问题)


public class MainActivity extends ActionBarActivity {
        private static ImageView iv_image;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        .................
        }
        ...............
        public static class PlaceholderFragment extends Fragment {
                public PlaceholderFragment() {
                }
                @Override
                public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                Bundle savedInstanceState) {
                        View rootView = inflater.inflate(R.layout.fragment_main, container,
                                        false);
                        iv_image = (ImageView) rootView.findViewById(R.id.iv_image); //可以得到ImageView,不为空
               
                         Options opts = new Options();
                         opts.inSampleSize = 2;
                         Bitmap myImage = BitmapFactory.decodeResource(getResources(),  //调试发现,myImage为空,得不到ImageView
                         R.id.iv_image, opts);       
                        return rootView;
                }
        }
}



作者: zhangshoutuo    时间: 2014-9-20 17:01
通过分析楼主的源代码,显然是你的myImage获取错了

Bitmap myImage = BitmapFactory.decodeResource(getResources(),  R.id.iv_image, opts);     

通过这条源代码是无法获取myImage的,R.id.iv_image代表的是iv_image

所以你想要获取myImage应该将这句代码改为

Bitmap myImage = BitmapFactory.decodeResource(getResources(),  R.drawable.iv_image, opts);  

R.drawable.iv_image代表的是图片资源的id,所以你应该在res目录下的drawable目录下寻找寻找你需要
你需要的图片,用它的图片文件名取代iv_image


作者: 张丽丹    时间: 2014-9-22 16:45
R.id.iv_image 这个明显imageivew控件id,R.drawable.xxx 图片名字错了
作者: 没劲睡觉    时间: 2014-10-22 10:57
getResources(),里面没有传值吧
作者: huangshengsen    时间: 2014-10-31 17:43
你的图片资源是放在drawable下的,所以图片的id应该是R.drawabl.iv_image
Bitmap myImage = BitmapFactory.decodeResource(getResources(),  R.id.iv_image, opts);
作者: 15501279394    时间: 2015-1-26 18:45
Bitmap myImage = BitmapFactory.decodeResource(getResources()<后面还有东西自己点一把>,  R.id.iv_image, opts);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2