【发布时间】:2014-05-30 15:18:14
【问题描述】:
现在我有一个LocationAdapter 类,它接收我的"Location" 对象并将每个Location 显示到ListView 中。我正在尝试将它传递给 Bitmap 图像,并让它在 ListView 行中显示该图像。它可以工作,但图像需要一段时间才能加载,即使在加载行中的文本之后也是如此。我正在实际设备上进行测试。这是我的活动代码:
public class MainActivity extends ActionBarActivity {
ArrayList<Location> arrayOfLocations;
LocationAdapter adapter;
private static Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
// Construct the data source
arrayOfLocations = new ArrayList<Location>();
// Create the adapter to convert the array to views
adapter = new LocationAdapter(this, arrayOfLocations);
Bitmap image = getBitmapFromID(1);
adapter.add(new Location(image, "Place 1",
"We have the freshest fruit in the whole world!", "2 miles",
"8-5 mon-sat\nclosed sun"));
adapter.add(new Location(image, "Place 2",
"We have the freshest fruit in the whole world!", "2 miles",
"8-5 mon-sat"));
adapter.add(new Location(image, "Place 3",
"We have the best cakes in the whole world!", "2 miles",
"8-5 mon-fri\n10-1 sat\nclosed sun\nclosed Memorial Day"));
adapter.add(new Location(image, "Fruit Stand",
"Best place!", "2 miles",
"8-5 mon-sat"));
adapter.add(new Location(image, "Place 4",
"Food!", "2 miles",
"8-5 mon-sat"));
adapter.add(new Location(image, "Place 5",
"Toys!", "2 miles",
"8-5 mon-sat"));
// Attach the adapter to a ListView
ListView listView = (ListView) findViewById(R.id.listView1);
View header = (View) getLayoutInflater().inflate(
R.layout.listview_header, null);
listView.addHeaderView(header);
listView.setAdapter(adapter);
}
public static Bitmap getBitmapFromID(int id) {
//final Bitmap bitmap;
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
bitmap = BitmapFactory
.decodeStream((InputStream) new URL(
"http://icons.iconarchive.com/icons/yellowicon/game-stars/256/Mario-icon.png")
.getContent());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
thread.start();
return bitmap;
}
}
我做错了什么吗?加载需要一段时间正常吗?谢谢!
【问题讨论】:
标签: java android listview bitmap