GVKun编程网logo

android – 将图像放在ListView上时,“resolveUri在坏位图uri上失败”

29

此处将为大家介绍关于android–将图像放在ListView上时,“resolveUri在坏位图uri上失败”的详细内容,此外,我们还将为您介绍关于androidListView与ScrollVie

此处将为大家介绍关于android – 将图像放在ListView上时,“resolveUri在坏位图uri上失败”的详细内容,此外,我们还将为您介绍关于android ListView 与 ScrollView 共存冲突解决、Android ListView 和ScroolView 出现onmeasure空指针的解决办法、Android ListView 嵌套ScrollView、android ListView嵌套ScrollView 问题的有用信息。

本文目录一览:

android – 将图像放在ListView上时,“resolveUri在坏位图uri上失败”

android – 将图像放在ListView上时,“resolveUri在坏位图uri上失败”

嘿,
我是Android的新手,我有一个小问题.我正在尝试将列表视图放在一起,图像通过URL加载.这项工作到目前为止,但图像不会出现. logcat说:

02-23 19:20:48.447: INFO/System.out(833): resolveUri Failed on bad bitmap uri: android.graphics.drawable.BitmapDrawable@405359b0

它显然没有找到我的形象,但我不明白为什么.使用R.drawable.icon虽然有效.谁能帮我吗?继承人我的来源:

public class Main extends Activity {
        private ListView lv_main;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        lv_main = (ListView) findViewById(R.id.listviewmain);

        ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();

        HashMap<String,String> map;

        map = new HashMap<String, String>();
        map.put("title", "a title goes here");
        map.put("details", "details blaa");
        map.put("cover", String.valueOf(Main.this.LoadImageFromWebOperations("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png"));
        //THIS WORKS FINE: map.put("cover", String.valueOf(R.drawable.icon));
        listItem.add(map);

        map = new HashMap<String, String>();
        map.put("title", "2nd title");
        map.put("details", "more details");
        map.put("cover", String.valueOf(Main.this.LoadImageFromWebOperations("http://www.google.com/images/srpr/nav_logo37.png"));
        //THIS WORKS FINE: map.put("cover", String.valueOf(R.drawable.icon));
        listItem.add(map);

        SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.listviewitem, new String[] {"cover", "title", "details"}, new int[] {R.id.cover, R.id.title, R.id.details});

        lv_main.setAdapter(mSchedule);
     }

    public Drawable LoadImageFromWebOperations(String url) {
        try
        {
                InputStream is = (InputStream) new URL(url).getContent();
                Drawable d = Drawable.createFromStream(is, "src name");
                return d;
        }catch (Exception e) {
                System.out.println("Exc="+e);
                return null;
        }
    }
}

提前致谢.

解决方法:

我已经解决了这个问题.
我正在使用代码来解决问题.

这里’Path’是一个可以使用的本地文件系统路径:Environment.getExternalStorageDirectory().getAbsolutePath()

public static String loadImageFromWebOperations(String url, String path) {
    try {
        InputStream is = (InputStream) new URL(url).getContent();

        System.out.println(path);
        File f = new File(path);

        f.createNewFile();
        FileOutputStream fos = new FileOutputStream(f);
        try {

            byte[] b = new byte[100];
            int l = 0;
            while ((l = is.read(b)) != -1)
                fos.write(b, 0, l);

        } catch (Exception e) {

        }

        return f.getAbsolutePath();
    } catch (Exception e) {
        System.out.println("Exc=" + e);
        return null;

    }
}

希望这可以帮助 :).

android ListView 与 ScrollView 共存冲突解决

android ListView 与 ScrollView 共存冲突解决

高春辉、王春生、朱峰:关于开源创业的 15 件小事

那用自定义 ListView 咯~

public class Utils_my_list_view {
 
        public  void setListViewHeightBasedOnChildren(ListView listView) {
               //获取ListView对应的Adapter
               ListAdapter listAdapter = listView.getAdapter();
               if (listAdapter == null) {
                      return;
               }
              
               int totalHeight = 0;
               for (int i = 0, len = listAdapter.getCount(); i < len; i++) {   //listAdapter.getCount()返回数据项的数目
                      View listItem = listAdapter.getView(i, null, listView);
                      listItem.measure(0, 0);  //计算子项View 的宽高
                      totalHeight += listItem.getMeasuredHeight();  //统计所有子项的总高度
               }
              
               ViewGroup.LayoutParams params = listView.getLayoutParams();
               params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
               //listView.getDividerHeight()获取子项间分隔符占用的高度
               //params.height最后得到整个ListView完整显示需要的高度
               listView.setLayoutParams(params);
        }
 
}

Android ListView 和ScroolView 出现onmeasure空指针的解决办法

Android ListView 和ScroolView 出现onmeasure空指针的解决办法

ListView 和ScroolView同时使用计算高度时onmeasure报空指针的解决办法

前言:

虽然Android 的设计者始终认为ListView、GridView+ScroolView组合使用并不是一种比较好的实现方法。但是在我们开发过程中又会经常使用到这样的需求,特别是在适配小屏幕手机的时候又必须要用这种让人不接受的设计,下面就来说一下在计算ListView或者GridView的过程中会出现onmeasure空指针的问题。

解决办法

当我发现listItem.measure(0,0)报空指针异常的时候,第一反应是listItem报空指针,然而debug调试过后发现其不为null,这个时候就比较费解了。

通过查看官方API和一些资料查找后发现了幕后的原因,其主要原因跟Linearlayout的机制有关,原因是因为只有Linearlayout重写了onmeasure这个方法,而android的其他的4种布局均没有重写onmeasure方法,想到这里,这个问题就不解自破了。既然要用到measure计算高度,那么我们就只能用Linearlayout布局了,所有解决这个问题的办法就是把你对应的适配器(adapter)里的其他布局改成Linearlayout就OK了。

自从跟进了这个问题之后,我最近也在寻找新的方式取代这种ListView 和ScroolView同时使用的情况,研究出来后会第一时间分享给大家。希望这篇博客能帮助大家解决这个问题。

总结

把adapter中的布局改成Linearlayout即可。原因如上。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Android ListView 嵌套ScrollView

Android ListView 嵌套ScrollView

在一个项目中用到ListView——Item布局中的一个textView内容比较多,需要单独可以手指滚动显示

android ListView嵌套ScrollView 问题

android ListView嵌套ScrollView 问题


<HorizontalScrollView 
                android:layout_width="180dp"
                android:layout_height="wrap_content"
                >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical|left"
                android:singleLine="true"
 />
           </HorizontalScrollView>


ListView的Adapterxml文件有scrollView布局,这样ListView获取不到点击事件,怎么解决,求指教

关于android – 将图像放在ListView上时,“resolveUri在坏位图uri上失败”的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于android ListView 与 ScrollView 共存冲突解决、Android ListView 和ScroolView 出现onmeasure空指针的解决办法、Android ListView 嵌套ScrollView、android ListView嵌套ScrollView 问题等相关内容,可以在本站寻找。

本文标签: