我有图像路径,我想在整个屏幕上显示图像,顶部有一个警告对话框。我该怎么办?
使用图像视图创建活动并将图像路径加载到位图中(使用采样以避免内存不足)。然后将imageview设置为此位图并在顶部显示警告对话框
使用View Intent,以便用户选择他/她的fav应用程序以查看图片并在顶部显示对话框。
现在有了第一个解决方案,我知道怎么做,但我总是担心我应该采样的大小,以避免内存不足。加上额外的工作:))
使用第二个解决方案(我更喜欢),但我不知道在调用View Activity之后我将如何显示对话框,因为它将是显示图像的另一个应用程序,除非有一种我缺少的方式
有什么建议吗?
答案 0 :(得分:1)
您可以在设备特定的高度宽度中显示图像....然后您不会因图像大小而内存不足。
这是代码:
@SuppressLint("NewApi")
public static int getDeviceWidth(Activity activity) {
int deviceWidth = 0;
Point size = new Point();
WindowManager windowManager = activity.getWindowManager();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
windowManager.getDefaultDisplay().getSize(size);
deviceWidth = size.x;
} else {
Display display = windowManager.getDefaultDisplay();
deviceWidth = display.getWidth();
}
return deviceWidth;
}
@SuppressLint("NewApi")
public static int getDeviceHeight(Activity activity) {
int deviceHeight = 0;
Point size = new Point();
WindowManager windowManager = activity.getWindowManager();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
windowManager.getDefaultDisplay().getSize(size);
deviceHeight = size.y;
} else {
Display display = windowManager.getDefaultDisplay();
deviceHeight = display.getHeight();
}
return deviceHeight;
}
您可以使用设备高度和宽度..并在imageview中设置此图片..
ImageView image = new ImageView(viewHomeScreen);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
FrameLayout.LayoutParams.FILL_PARENT,
FrameLayout.LayoutParams.FILL_PARENT);
params.height = getDeviceHeight(activity);
params.width = getDevicewidth(activity);
FrameLayout framelayout = new FrameLayout(viewHomeScreen);
framelayout.addView(image, 0, params);