接口回调传图片

来源:互联网 发布:telnet指定端口 编辑:程序博客网 时间:2024/06/11 01:23

接口回调(传值)

1:定义一个接口
2:定义接口中的方法(传参)声明接口
3:在传值方设置添加接口的方法
4:在传值方调用接口中的方法
5:在接受方创建传值方对象,调用设置接口的方法

1:写一个类

public class Bactivity {private String imgPath="http://p3.so.qhimg.com/bdr/326__/t01488cea27c27cf588.jpg";//图片的网址private Call call;public void Load(){//子线程new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubtry {URL url = new URL(imgPath);//网络获取图片URLConnection conn = url.openConnection();Bitmap bitmap = BitmapFactory.decodeStream(conn.getInputStream());Message msg = mHandler.obtainMessage();msg.what=1;msg.obj=bitmap;mHandler.sendMessage(msg);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();}Handler mHandler = new Handler(){public void handleMessage(Message msg) {super.handleMessage(msg);if (msg.what==1) {Bitmap bitmap = (Bitmap) msg.obj;call.getBitmap(bitmap);}};};
<span style="white-space:pre"></span>//定义接口(这是重点)public interface Call{public void getBitmap(Bitmap bitmap);//接口中的方法}
<span style="white-space:pre"></span>//设置添加接口的方法(这是重点)public void setOnclickListener(Call call){this.call = call;}}

2.MainActivity

public class MainActivity extends Activity implements Call {    private ImageView iv;    private Bactivity bactivity;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        iv = (ImageView) findViewById(R.id.iv);        bactivity=new Bactivity();        bactivity.Load();        bactivity.setOnclickListener(this);    }@Overridepublic void getBitmap(Bitmap bitmap) {iv.setImageBitmap(bitmap);}}

Mainactivity的xml文件里只需要写一个Imageview给个id就可以了





0 0