如何单击图像按钮并将其显示在 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 的新页面中?的主要内容,如果未能解决你的问题,请参考以下文章