Resources res=getResources();
Bitmap mBitmap = BitmapFactory.decodeResource(res, R.drawable.p_1920x1080);
BitmapDrawable bDrawable = new BitmapDrawable(res, mBitmap);
//get the size of the image and the screen
int bitmapWidth = bDrawable.getIntrinsicWidth();
int bitmapHeight = bDrawable.getIntrinsicHeight();
int screenWidth = this.getWindowManager().getDefaultDisplay().getWidth();
int screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();
9条答案
按热度按时间uxhixvfz1#
@cV2非常感谢你的代码。它让我朝着我需要的方向前进。这是我修改后的版本,它在图像的边缘停止滚动...
我相信它可以改进一点,但它工作得很好。:)
9vw9lbht2#
我搜索了很久才找到这段代码,所以我想分享这段伟大的代码:
此代码来自Activity,该Activity在后端有一个xml文件**,其中包含名为'img'的ImageView**
把工作做得很完美包括水平和垂直滚动(已启用)
只有消极的一面...你可以滚动图片的边缘但这对我来说不是问题。花点时间你就可以很容易地实现这个功能:)
祝你好运&&玩得开心
hk8txs483#
这就是我的方法:p
fxnxkyjh4#
@wirbly非常感谢你的代码,它完全按照我想要的方式工作。但是当我第一次读你的代码时,我对你忘记定义的四个变量有点困惑。
所以,我想添加代码的定义,使其更清晰。
希望能帮上忙
wooyq4lh5#
最简单的方法是imho使用webview并通过本地html文件将图像加载到其中。这样,如果您想使用缩放控件,您也将自动获得它们。对于大图像(即如果它是1000或3000像素宽),你会注意到,Android(Coliris)是不是很擅长显示大缩放图像非常清晰,即使原始图像是清晰和未压缩)。这是一个已知问题。解决这个问题的方法是将大图片分解成小块,然后通过html(div或table)将它们重新组合在一起。我使用这种方法向用户提供地铁Map(比屏幕大并且可滚动)。
这可能适用于大多数情况/“常规应用程序”,但取决于您的特定情况。如果你正在谈论一个图像作为一个游戏的可滚动背景,它可能对你没有用。
除了html文件,你也可以直接加载图片(png,jpg)。如果你不想要缩放控制,只要把它们关掉。
eivgtgni6#
另一种方法是创建
HorizontalScrollView
,将imageView
添加到其中,然后将HorizontalScrollView
添加到ScrollView
中。这允许您向上、向下、向左、向右滚动。ymzxtsji7#
对我很有效
cwxwcias8#
嘿,伙计们,找到了一个简单和100%可靠的解决方案,正如上面提到的X先生(因为提到的其他代码在某些设备上不起作用或破坏)只需使用Android提供的ScrollView,它就可以处理事情了
像这样的东西
and in oncreate创建something like this
干杯!
qni6mghb9#
为ZoomableImageView创建一个JavaClass,其名称为:
这就是XML