Android实战简易教程-第七十四枪(Intent之间传递图片)

主布局文件(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);
    }
}

调用BitmapFactorydecodeResource方法将一张图片转换成Bitmap对象,需要传入两个参数,第一个是Resources对象,第二个是图片的id。然后调用IntentputExtra方法进行图片的传递。

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

调用IntentgetParcelableExtra方法,传入对应的key可以获得Bitmap对象,然后进行类型强转,调用ImageViewsetImageBitmap,可以将一个Bitmap对象显示出来。

运行实例:

Android实战简易教程-第七十四枪(Intent之间传递图片)_第1张图片Android实战简易教程-第七十四枪(Intent之间传递图片)_第2张图片

点击“传递一张图片按钮,跳转到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###

欢迎关注我


你可能感兴趣的:(android,intent)