RMS*_*MS2 6 android screen-orientation imageview
我正在尝试显示URL中的图像,该图像可能大于屏幕尺寸.我有点工作,但我希望它可以缩放以适应屏幕,当屏幕方向改变时我也有问题.图像很小,我希望它的宽度也可以缩放到屏幕上.(在这两种情况下,我都希望图像用滚动条填充屏幕宽度(如果需要高度).
这是我的ImageView:
<ImageView android:id="@+id/ImageView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true">
</ImageView>
Run Code Online (Sandbox Code Playgroud)
这是加载图像的java代码:(为简单起见,删除了一些错误处理代码)
Object content = null;
try{
URL url = new URL("http://farm1.static.flickr.com/150/399390737_7a3d508730_b.jpg");
content = url.getContent();
}
catch(Exception ex)
{
ex.printStackTrace();
}
InputStream is = (InputStream)content;
Drawable image = Drawable.createFromStream(is, "src");
Image01.setImageDrawable(image);
Run Code Online (Sandbox Code Playgroud)
我尝试过android:scaleType的不同设置.如果以前曾问过这个问题,我很抱歉.我已经完成了很多关于这个主题的教程,但它们似乎对我没用.不确定它是否与图像的加载方式有关.(来自网络而不是本地资源)
另一个问题是有时图像甚至无法加载.没有运行时错误,我在ImageView中什么都没得到.
如果您需要更多信息或说明,请与我们联系.
关于"有时图像甚至不加载"的问题与上下文有关,因此我使用此函数来解决该问题
public Object fetch(String address) throws MalformedURLException,
IOException {
URL url = new URL(address);
Object content = url.getContent();
return content;
}
private Drawable ImageOperations(Context ctx, String url) {
try {
InputStream is = (InputStream) this.fetch(url);
Drawable d = Drawable.createFromStream(is, "src");
return d;
} catch (MalformedURLException e) {
return null;
} catch (IOException e) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
所以要用你的图像填充屏幕宽度,你必须有这样的代码
try{
String url = "http://farm1.static.flickr.com/150/399390737_7a3d508730_b.jpg";
Drawable image =ImageOperations(this,url);
Image01.setImageDrawable(image);
}
catch(Exception ex)
{
ex.printStackTrace();
}
Image01.setMinimumWidth(width);
Image01.setMinimumHeight(height);
Image01.setMaxWidth(width);
Image01.setMaxHeight(height);
Run Code Online (Sandbox Code Playgroud)
更新::如果您加载一个大尺寸图片很明显,你将不得不等待更长的时间,和下载的问题可能是UnknowHostException引起的.
是的,你是对的,你会在本地保存图像,本地接入比下载速度更快.
避免在旋转变化问题,将您configChanges ="keyboardHidden |取向"你的Manifest.xml内财产
<activity android:name=".myActivity"
...
android:configChanges="keyboardHidden|orientation" >
...
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24634 次 |
| 最近记录: |