我必须从互联网上提取图像并将它们应用为 LinearLayout 的背景 - 有可能吗?我还没有看到任何合适的方法。
user1526659
问问题
1832 次
3 回答
0
只需使用BitmapFactory
, 加载您的图像(如果需要,调整其大小),使用BitmapDrawable
并应用它LinearLayout.setBackgroundDrawable()
于 2012-04-19T13:41:13.507 回答
0
将图像视图设置为线性布局的背景,即:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/myimageview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
然后,在您的 Java 中:
ImageView mImageView = (ImageView)findViewById(R.id.myimageview);
Bitmap bmImg;
URL myFileUrl = put in your url here;
try {
myFileUrl= new URL(fileUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
mImageView.setImageBitmap(bmImg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
希望这可以帮助。另外,请参阅此参考资料(我在其中获得了图像下载代码)。
于 2012-04-19T13:46:35.883 回答
0
当然。
只需获取图像的 InputStream:
InputStream is = (InputStream) new URL(url).getContent();
从流中获取 Drawable:
Drawable d = Drawable.createFromStream(is, "src name");
然后设置LinearLayout Background Drawable:
linearLayout.setBackgroundDrawable(d);
这实际上直接从流中设置图像。您可能想使用 ASyncTask 在后台拉下可绘制对象并在之后进行设置:http: //developer.android.com/reference/android/os/AsyncTask.html
您可能还想研究惰性加载器: http ://evancharlton.com/thoughts/lazy-loading-images-in-a-listview
于 2012-04-19T13:48:52.530 回答