Making image full screen on android tutorial app(在android教程应用程序上制作图像全屏)
问题描述
使用 Hello, World Gridview 教程示例,我试图在单击时使图像全屏显示,而不是显示图像在数组中的位置.由于我对 Android 不熟悉,这是我第一次尝试使用它进行开发,所以我很茫然.不过,我对 Java 很熟悉,并且我尝试过这样做(这显然不起作用):
Using the Hello, World Gridview tutorial example, I am attempting to make the image fullscreen on click instead of display the position of the image in the array. As I am unfamilar with Android and this is my first development attempt with it, I'm at a loss. I am familiar with Java though, and I've tried doing things like this (that don't work obviously):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
showImage(v, position);
Toast.makeText(HelloAndroid.this, "" + parent.getId(), Toast.LENGTH_SHORT).show();
}
});
}
private void showImage(View view, int position) {
ImageView imgView = (ImageView) view;
imgView.setImageResource(position);
}
但应用程序崩溃(强制关闭).有什么想法吗?
But the app crashes (force close). Any ideas?
这是我正在使用的教程应用
推荐答案
imgView.setImageResource(position);
这会给您一个错误,因为您没有正确使用它.该参数应指向图像的资源 ID(它是一个 int),例如R.id.imageid
.即使您要提供正确的资源 ID,您想要做的也不会奏效.
This gives you an error because you are not using it correctly. The parameter should be pointing to the resource ID of the image (which is an int) e.g. R.id.imageid
. Even if you were to supply the right resource ID, what you want to do would not work.
要获取正确的资源 ID,您需要调用视图的适配器并使用 getItemId(position)
方法来获取正确的资源 ID.在您的 ImageAdapter 中,如果您将 getItemId()
方法更改为返回 mThumbsIds[position]
而不是 0(如 Google 的示例中所示).
To get the right resource ID, you would need to call the adapter of the view and use the getItemId(position)
method to get the correct resource ID. in your ImageAdapter, if you change your getItemId()
method to return mThumbsIds[position]
rather than 0 (as in Google's example).
但是,为了实现您的结果,我建议您创建一个新 Activity 并像这样加载图像.
However, to achieve your result I would suggest for you to create a new Activity and just load the image like that.
例如:
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
long imageId = (ImageAdapter)parent.getAdapter.getItemAt(position);
Intent fullScreenIntent = new Intent(v.getContext(), FullScreenImage.class);
fullScreenIntent.putExtra(thisClassName.class.getName(), imageId);
thisClassName.this.startActivity(fullScreenIntent);
}
});
假设您创建了一个 full_image.xml
布局文件,其中只包含一个 ID 为 "fullImage"
的 ImageView,您的 FullScreenImage 类应该如下所示:
Assuming you create a full_image.xml
layout file, containing just an ImageView with an id of "fullImage"
, your FullScreenImage class should look like this:
public class FullScreenImage extends Activity
{
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.full_image);
Intent intent = getIntent();
long imageId = intent.getExtras().get(thisClassName.class.getName());
ImageView imageView = (ImageView) v.findViewById(R.id.fullImage);
imageView.setLayoutParams( new ViewGroup.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT));
imageView.setImageResource(imageId);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
这些方面的东西应该适合你,并进行一些调整.确保在 AndroidManifest.xml
文件中也将 FullScreenImage 添加为 <activity>
.
Something along these lines should work well for you, with some tweaking. Make sure you add FullScreenImage in your AndroidManifest.xml
file as an <activity>
as well.
这篇关于在android教程应用程序上制作图像全屏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在android教程应用程序上制作图像全屏
基础教程推荐
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01