android-使用 Bitmap 时,图片不能显示

问题描述

使用 Bitmap 时,图片不能显示
请大家帮我看看下面的代码,为什么图像不能在list中显示,然而空间和图像的其他描述却能看得见。

public class Test extends ListActivity  {      Prefs myprefs = null;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.listplaceholder);        this.myprefs = new Prefs(getApplicationContext());        // install handler for processing gui update messages        ArrayList<HashMap<String Object>> mylist = new ArrayList<HashMap<String Object>>();        JSONObject json = JSONfunctions.getJSONfromURL(""http://midsweden.gofreeserve.com/proj/androidjson.php?identifier="" +         Test.this.myprefs.getPersonalno());        try{            JSONArray  earthquakes = json.getJSONArray(""services"");            for(int i=0;i<earthquakes.length();i++){                                        HashMap<String Object> map = new HashMap<String Object>();                 JSONObject e = earthquakes.getJSONObject(i);                map.put(""id"" e.getString(""taskid""));                map.put(""pic""Service name : "" + e.getString(""employeepic""));                map.put(""serviceinfo""" +  e.getString(""employeename"")+ "" : ""+ e.getString(""starttime"")                        +"" To "" +  e.getString(""endtime""));                  BmpFromURL  myBmpFromURL = new BmpFromURL(""http://midsweden.gofreeserve.com/proj/admin/pictures/file87619.jpg"");                  Bitmap myBitmap = myBmpFromURL.getMyBitmap();                    map.put(""img""myBitmap);                mylist.add(map);                        }               }catch(JSONException e)        {             Log.e(""log_tag""Error parsing data ""+e.toString());        }        SimpleAdapter adapter = new SimpleAdapter(this mylist  R.layout.testnew String[] {""img""servicename""serviceinfo"" }                         new int[] {  R.id.image R.id.item_title R.id.item_subtitle });        setListAdapter(adapter);        final ListView lv = getListView();        lv.setTextFilterEnabled(true);          lv.setOnItemClickListener(new OnItemClickListener() {            public void onItemClick(AdapterView<?> parent View view int position long id) {                              @SuppressWarnings(""unchecked"")                HashMap<String String> o = (HashMap<String String>) lv.getItemAtPosition(position);                                   Toast.makeText(Test.thisID '"" + o.get(""id"") + ""' was clicked."" Toast.LENGTH_SHORT).show();             }        });    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        MenuInflater inflater = getMenuInflater();        inflater.inflate(R.menu.menu menu);        return true;    }      @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {            case R.id.settings:                     Intent intent = new Intent(this ShowSettings.class);                  startActivity(intent);            break;            case R.id.web:                     Intent intent4 = new Intent(this MenuActivity.class);                  startActivity(intent4);            break;            case R.id.services:                     Intent intent2 = new Intent(this Test.class);                startActivity(intent2);              break;            case R.id.Quit:                Intent intent3 = new Intent(this ServicesDemo.class);                startActivity(intent3);                   break;            default:                break;        }        return true;    }}

Bitmap class

    public class BmpFromURL {    private Bitmap myBitmap;    public BmpFromURL(String imageURL){    URL myImageURL = null;    try {    myImageURL = new URL(imageURL);    } catch (MalformedURLException error) {    error.printStackTrace();    }    try {    HttpURLConnection connection = (HttpURLConnection)myImageURL .openConnection();    connection.setDoInput(true);    connection.connect();    InputStream input = connection.getInputStream();    myBitmap = BitmapFactory.decodeStream(input);    } catch (IOException e) {   e.printStackTrace();    }    }   public Bitmap getMyBitmap() {    return myBitmap;    }}

xml 文件

<?xml version=""1.0"" encoding=""utf-8""?><LinearLayout xmlns:android=""http://schemas.android.com/apk/res/android""    android:orientation=""vertical""    android:layout_width=""fill_parent""    android:layout_height=""fill_parent""    android:cacheColorHint=""#55000000""    android:background=""#55000000""    >      <ImageView      android:id=""@+id/image""      android:layout_width=""50dip""      android:layout_height=""50dip""      /><TextView      android:id=""@+id/item_title""    android:layout_width=""fill_parent""     android:layout_height=""wrap_content""     android:textAppearance=""?android:attr/textAppearanceMedium""    android:padding=""2dp""    android:textSize=""20dp"" />    <TextView      android:id=""@+id/item_subtitle""    android:layout_width=""fill_parent""     android:layout_height=""wrap_content""     android:padding=""2dp""    android:textSize=""18dp"" /></LinearLayout>

解决方案

请使用下面 ListView 的图片延迟加载
请看这里: http://open-pim.com/tmp/LazyList.zip
GitHub: https://github.com/thest1/LazyList

时间: 2024-09-16 06:33:18

android-使用 Bitmap 时,图片不能显示的相关文章

Android使用AsyncTask下载图片并显示进度条功能

在Android中实现异步任务机制有两种方式,Handler和AsyncTask.这篇文章给大家介绍Android使用AsyncTask下载图片并显示进度条功能. AsyncTask下载图片并显示下载进度,异步类AsyncTask配合进度条,简练! public class AsyncTaskActivity2 extends Activity { private Button btnDown;//图片框 private ImageView ivImage;//图片URL private sta

byte-Byte[]转Bitmap时图片变花,求大神帮忙

问题描述 Byte[]转Bitmap时图片变花,求大神帮忙 Android写了一个相机,但是photo = BitmapFactory.decodeByteArray(data 0 data.length)时候图片变花了,求大神帮忙,急急急 解决方案 遇到过同样的问题,我的问题是在处理data[]数据转Bitmap后,将图片旋转了90°,后来连续拍照后,保存的图片看上去像有很多张重叠在一起的,后来找了很久,发现是旋转的问题: Matrix matrix = new Matrix(); matri

Android利用BitMap获得图片像素数据的方法_Android

本文实例讲述了Android利用BitMap获得图片像素数据的方法.分享给大家供大家参考,具体如下: 网上看到的参考是: int[] pixels = new int[bit.getWidth()*bit.getHeight()];//保存所有的像素的数组,图片宽×高 bit.getPixels(pixels,0,bit.getWidth(),0,0,bit.getWidth(),bit.getHeight()); for(int i = 0; i < pixels.length; i++){

Android利用BitMap获得图片像素数据的方法

本文实例讲述了Android利用BitMap获得图片像素数据的方法.分享给大家供大家参考,具体如下: 网上看到的参考是: int[] pixels = new int[bit.getWidth()*bit.getHeight()];//保存所有的像素的数组,图片宽×高 bit.getPixels(pixels,0,bit.getWidth(),0,0,bit.getWidth(),bit.getHeight()); for(int i = 0; i < pixels.length; i++){

解决Android快速滑动时图片一闪一闪问题_Android

快速滑动图片一闪一闪的问题,图片加载等处理在这里不介绍,主要就是介绍下在Adapter中维护一个LinkedHashMap解决上述问题 package com.longraise.seller.adapter; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.view.LayoutInfla

解决Android快速滑动时图片一闪一闪问题

快速滑动图片一闪一闪的问题,图片加载等处理在这里不介绍,主要就是介绍下在Adapter中维护一个LinkedHashMap解决上述问题 package com.longraise.seller.adapter; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.view.LayoutInfla

Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)_Android

一.需求: 标题可能写的不够全部,下面来看下图片,大家就明白是什么意思了.视频与票的图标跟在标题后面显示,当标题过长时icon显示到省略号-后(textview省略号显示,图标自动靠后). 二.问题解决 TextView可以通过 android:ellipsize="end" android:singleLine="true"实现单行省略, 但是当我们要是图标跟着文字后面,第一时间想到用LinearLayout的layout_weight 来做,但是做出来效果不一样

Android 加载大图片时内存溢出怎么办

  尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存. 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source, decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAs

网页设计-linux环境下访问boa服务器网页图片无法显示

问题描述 linux环境下访问boa服务器网页图片无法显示 单独打开网页文件图片是可以现实的. 通过boa服务器访问ip地址时图片无法显示 这应该不是网页设计问题吧.是什么原因?服务器的问题吗? 解决方案 先看你页面上console中的日志信息,是否提示背景图片没有获取,然后就是查看服务器上的日志,图片估计没有正确返回给浏览器 解决方案二: 您好,我也在做这个方面,一起探讨QQ1845395137