我已经搜索并尝试了几种不同的方法。我都缺席了。这是我目前的方法:

package com.dop.mobilevforum;

import java.io.InputStream;
import java.net.URL;

import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.ImageView;
import android.widget.VideoView;

public class Vforum extends Activity
{
    private String imgPath = "http://mysite.com/mv/vfdemo1/slides/slide1.jpg";

    private ImageView slideHolder;

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vforum);

        slideHolder = (ImageView) findViewById(R.id.slideHolder);

        Drawable drawable = LoadImageFromWebOperations(imgPath);
        slideHolder.setImageDrawable(drawable);
    }

    private Drawable LoadImageFromWebOperations(String url)
    {
        try
        {
            InputStream is = (InputStream) new URL(url).getContent();
            Drawable d = Drawable.createFromStream(is, "src name");
            return d;
        }
        catch (Exception e)
        {
            Log.w("LoadImageFromWebOperations",e.toString());
            return null;
        }
    }
}


LoadImageFromWebOperations方法返回一个位图,因此我知道该部分正在工作。我认为是slideHolder.setImageDrawable(drawable);失败了。这是我的XML:

<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/mobile_vforum_bg">
    <ImageView
        android:id="@+id/slideHolder"
        android:layout_width="320px"
        android:layout_height="240px">
    </ImageView>
</FrameLayout>


有任何想法吗?我只是得到黑屏,没有错误。

最佳答案

最好的选择是使用WebView,但如果您确实想以这种方式进行操作,请不要使用setImageDrawable。您应该使用setImageBitmap。如果您的LoadImageFromWebOperations返回一个位图,则您不应更改任何内容,但是您正在使用的功能应该可以正常运行。

10-04 23:08