gpt4 book ai didi

android - 在android教程应用程序上制作图像全屏

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:09:08 27 4
gpt4 key购买 nike

使用 Hello, World Gridview 教程示例,我试图在单击时使图像全屏显示,而不是显示图像在数组中的位置。由于我对 Android 不熟悉,这是我第一次尝试使用它进行开发,所以我很茫然。虽然我熟悉 Java,但我尝试过这样做(显然行不通):

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);
}

但应用程序崩溃(强制关闭)。有什么想法吗?

Here is the tutorial app I am using

最佳答案

imgView.setImageResource(position); 

这会给你一个错误,因为你没有正确使用它。该参数应指向图像的资源 ID(它是一个 int),例如R.id.imageid .即使您提供了正确的资源 ID,您想要执行的操作也不会奏效。

要获得正确的资源 ID,您需要调用 View 的适配器并使用 getItemId(position)获取正确资源 ID 的方法。在您的 ImageAdapter 中,如果您更改 getItemId()返回方法 mThumbsIds[position]而不是 0(如 Google 的示例)。

但是,为了实现您的结果,我建议您创建一个新的 Activity 并像那样加载图像。

例如:

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 类应如下所示:

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>

关于android - 在android教程应用程序上制作图像全屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4915312/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com