主布局文件(activity_main.xml):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btn" android:onClick="transPic" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="传递一张图片" /> </LinearLayout>
AnotherActivity布局文件(activity_another.xml):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout>
设置了一个ImageView控件用于接收显示传递过来的图片。
MainActivity代码(MainActivity.java):
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void transPic(View view){ //将图片转换为Bitmap对象 Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher); Intent intent=new Intent(MainActivity.this,AnotherActivity.class); intent.putExtra("pic",bitmap);//传递 startActivity(intent); } }
调用BitmapFactory的decodeResource方法将一张图片转换成Bitmap对象,需要传入两个参数,第一个是Resources对象,第二个是图片的id。然后调用Intent的putExtra方法进行图片的传递。
AnotherActivity代码(AnotherActivity.java):
public class AnotherActivity extends AppCompatActivity { private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_another); imageView=(ImageView)findViewById(R.id.iv); imageView.setImageBitmap((Bitmap)getIntent().getParcelableExtra("pic")); } }
调用Intent的getParcelableExtra方法,传入对应的key可以获得Bitmap对象,然后进行类型强转,调用ImageView的setImageBitmap,可以将一个Bitmap对象显示出来。
运行实例:
点击“传递一张图片”按钮,跳转到AnotherActivity界面,显示一张图片。
PS:Intent跳转比较生硬,我们可以加入一些动画,让它的跳转更活泼一点,只要在startActivity后面加入一句代码:
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
这里我们调用了系统内置的动画文件,左面滑入,右面滑出的效果,运行一下,是不是切换过程更友好了?
欢迎购买我的电子书:http://yuedu.baidu.com/ebook/284b41a1e518964bce847c90?qq-pf-to=pcqq.c2c###
欢迎关注我