如何将URL更改为缩略图

时间:2013-03-12 13:01:37

标签: android

我想以缩略图的形式表示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);
}



 }

1 个答案:

答案 0 :(得分: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文件。