我正在研究Widget。 我想将一个图像(在服务器上可用)设置为窗口小部件背景。 以下内容不起作用,因为没有从URL
获取代码:
Uri myUri = Uri.parse("http://videodet.com/cc-content/uploads/thumbs/g45EMgnPwsciIJdOSMQt.jpg");
remoteViews.setImageViewUri(R.id.widget_img, myUri);
答案 0 :(得分:1)
uri没有从URL
获取
我认为你的网址可能有问题。
我建议您尝试以下方法检查网址:
URI uri = null;
URL url = null;
方法1:
// Create a URI from url
try {
uri = new URI("http://www.google.com/");
Log.d("URI created: " + uri);
}
catch (URISyntaxException e) {
Log.e("URI Syntax Error: " + e.getMessage());
}
方法2
// Create a URL
try {
url = new URL("http://www.google.com/");
Log.d("URL created: " + url);
}
catch (MalformedURLException e) {
Log.e("Malformed URL: " + e.getMessage());
}
// Convert a URL to a URI
try {
uri = url.toURI();
Log.d("URI from URL: " + uri);
}
catch (URISyntaxException e) {
Log.e("URI Syntax Error: " + e.getMessage());
}
注意:
我想指出setImageViewUri (int viewId, Uri uri)
适用于Android平台特有的内容URI,而不是指定Internet资源的URI。
您可以尝试以下方法从服务器获取位图:
private Bitmap getImageBitmap(String url) {
Bitmap bm = null;
try {
URL aURL = new URL(url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (IOException e) {
Log.e(TAG, "Error getting bitmap", e);
}
return bm;
}