-1

我想将指向 URL 的链接表示为缩略图。这是我目前正在尝试的代码:

public class MainActivity extends ListActivity {

ImageView imageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    init();
}

private void init() {
    imageView = (ImageView)findViewById(R.id.imageView1);

    ArrayList<String> videoLinks = new ArrayList<String>();
    String links1 = "http://www.tools4movies.com/dvd_catalyst_profile_samples/Harold Kumar 3 Christmas bionic.mp4";

    String links2 = "http://www.tools4movies.com/dvd_catalyst_profile_samples/The Amazing Spiderman bionic.mp4";

    String links3 = "http://www.tools4movies.com/dvd_catalyst_profile_samples/Twilight 4 Breaking Dawn bionic.mp4";
    String links4 = "http://www.tools4movies.com/dvd_catalyst_profile_samples/Harold Kumar 3 Christmas bionic fast.mp4";

    String links5 = "http://www.tools4movies.com/dvd_catalyst_profile_samples/The Amazing Spiderman bionic fast.mp4";

    videoLinks.add(links1);
    videoLinks.add(links2);
    videoLinks.add(links3);
    videoLinks.add(links4);
    videoLinks.add(links5);


    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, videoLinks);
    setListAdapter(adapter);
    adapter.notifyDataSetChanged();

    Bitmap bm = ThumbnailUtils.createVideoThumbnail(links1, Thumbnails.MICRO_KIND);
    imageView.setImageBitmap(bm);
}



 }
4

1 回答 1

1

您将 URL 字符串作为 ThumbnailUtils.createVideoThumbnail() 的第一个参数值。

但是文档指出该字符串应该是文件路径,而不是 URL。

这个怎么样?

public static Bitmap getBitmapFromURL(String src) {
    try {
        URL url = new URL(src);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

然后这样设置。

Bitmap bm = getBitmapFromURL(links1.replace(".mp4", ".jpg").toLowerCase());
imageView.setImageBitmap(bm);

不要忘记将用户权限互联网放在清单中。

不过,您可能应该将其放在 AsyncTask 中。当您连接到 URL 时,您不希望 UI 冻结。

编辑:

没关系检查它。您可以获取 jpg 文件。

于 2013-03-12T13:16:28.587 回答