如何单击图像按钮并将其显示在 Android Studio 的新页面中?

Posted

技术标签:

【中文标题】如何单击图像按钮并将其显示在 Android Studio 的新页面中?【英文标题】:How to click an imagebutton and have it appear in a new page in Android Studio? 【发布时间】:2015-05-17 07:52:21 【问题描述】:

我试图拥有一系列 imageButtons,当单击一个时,它会将用户发送到具有该图像的不同页面。我可以在第一个屏幕上加载所有图像,但不知道如何在单击后将图像显示在第二个屏幕上。谁能帮帮我?

【问题讨论】:

在 ImageButton 上设置一个 onClickListener 并在其中创建一个将用户发送到第二个屏幕的意图。 你如何在第一个屏幕上加载图像 krishna,现在我只是将小部件拖到屏幕上,然后进入并做了类似 android:src="@drawable/picture" 的源代码 【参考方案1】:

要从一个活动导航到另一个活动,在 android 中我们有 Intent 类。 我们还可以通过Intent 将数据从一个活动传递到另一个活动。

因此,基本上,您需要将一个意图从您的主要活动发送到第二个活动,以便第二个活动出现。除了意图,您还需要附加数据。本例中的数据是图片的文件名(资源名)。

看看这段代码。

您的主要活动有两个图像按钮。

public class mainActivity extends ActionBarActivity 

ImageButton imageButton1;
ImageButton imageButton2;

@Override
 void onCreate(Bundle savedInstanceState) 
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);

 imageButton1 = (ImageButton)findViewById(R.id.ib1);
 imageButton2 = (ImageButton)findViewById(R.id.ib2);


 imageButton1.setOnClickListener(new View.OnClickListener() 
    @Override
    public void onClick(View v) 
        Intent intent = new Intent(getActivity(),SecondActivity.class);
        intent.putExtra("USE_A_CONSTANT_HERE_AS_KEY", R.drawable.img1);
        startActivity(intent);
    
 );

imageButton2.setOnClickListener(new View.OnClickListener() 
    @Override
    public void onClick(View v) 
        Intent intent = new Intent(getActivity(),SecondActivity.class);
        intent.putExtra("USE_A_CONSTANT_HERE_AS_KEY", R.drawable.img2);
        startActivity(intent);
    
  );
 

现在是您希望显示图像的第二个 Activity。

public class SecondActivity extends ActionBarActivity 

@Override
 protected void onCreate(Bundle savedInstanceState) 
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_second);

 ImageView imageView = (ImageView)findViewById(R.id.iv);
 int resourceId = getIntent.getIntentExtra("USE_A_CONSTANT_HERE_AS_KEY",R.drawable.ic_launcher)

 imageView.setImageResource(resourceId);
  

现在您的第二个活动“activity_second”的 XML 布局文件是我为 xml 文件命名的名称。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"          
 android:layout_
 android:layout_>


<ImageView
android:id="@+id/iv"
android:layout_
android:layout_/>
</RelativeLayout>

现在澄清一下,getIntent.getIntExtra("USE_A_CONSTANT_HERE_AS_KEY",R.drawable.ic_launcher)

在Intents中使用putExtra()getExtra()方法的第一个参数是第一个key,第二个是value。

最好将键声明为常量。

【讨论】:

@user1843804 如果这解决了您的问题,请将其标记为答案。【参考方案2】:

如果您从drawable 文件夹中将资源设置为您的按钮,例如R.drawable.myimage,这就是您需要做的:

制作意图并输入您的图片的 id(按钮图片或您需要的)

imageButton.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            Intent in = new Intent(getActivity(),Test.class);
            in.putExtra("id", R.drawable.google);
            startActivity(in);
        
    );

TestActivity 类: 在此类中,您可以缓存意图并通过意图中的图像“ID”设置setImageResource。

public class Test extends ActionBarActivity 

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);

    ImageView test = (ImageView)findViewById(R.id.iv_test);

    test.setImageResource(getIntent().getIntExtra("id",R.drawable.ic_launcher));

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_
android:layout_ android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="studio.linkup.com.animation_view.Test">

<TextView android:text="@string/hello_world" android:layout_
    android:layout_ />

<ImageView
    android:layout_
    android:layout_
    android:id="@+id/iv_test" />

【讨论】:

R.drawable.ic_launcher - 如果你什么都不带,它的默认值。 几个问题。首先,什么是getActivity()?那是我必须导入的东西吗?其次,您将 imageButton.setOnClicker 放在哪里?第三:iv_test 和 ic_launchers 是什么?如果我必须制作它们,我在哪里制作它们?抱歉所有问题。 getActivity 方法返回您的活动,您可以在 Activity 类中编写“this”您的代码。我建议您阅读更多有关此内容的信息。将 imgae 按钮放在 onCreate 方法主活动中,同时在那里设置 onClickListeners。将您的图像放入可绘制文件夹(res/drawable),您的此资源路径的整数 id 将是 R.drawable.image_name。你需要多练习!祝你好运。保持你的代码干净))。

以上是关于如何单击图像按钮并将其显示在 Android Studio 的新页面中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android小部件中单击图像按钮显示吐司

如何通过单击选项卡来更改操作栏菜单按钮

如何在按钮单击时更改图像视图大小[重复]

如何使带有自定义背景图像的按钮在Android中显示点击动画

android捕获照片并将其保存在图像视图中并发送彩信?

如何在android中获取显示图像的宽度和高度?