黑马程序员——关于接口

时间:2022-02-03 11:43:03
public class AsyncImageLoader {
 
 private static final String TAG = "AsyncImageLoader";
 //第一一个map集合,添加软引用。
 private Map<String, SoftReference<Drawable>> imageCache=
   new HashMap<String, SoftReference<Drawable>>();
 
 public Drawable loadDrawable(final String imageUrl,final ImageCallback callback){
  if(imageCache.containsKey(imageUrl)){
   //要是图片的网页地址存在的话就直接返回
   SoftReference<Drawable> softReference=imageCache.get(imageUrl);
   if(softReference.get()!=null){
    return softReference.get();
   }
  }
  //handler时间处理
  final Handler handler=new Handler(){
   @Override
   public void handleMessage(Message msg) {
    callback.imageLoaded((Drawable) msg.obj, imageUrl);
   }
  };
  //开启一个线程。
  new Thread(){
   public void run() {
    Drawable drawable=loadImageFromUrl(imageUrl);
    imageCache.put(imageUrl, new SoftReference<Drawable>(drawable));
    handler.sendMessage(handler.obtainMessage(0,drawable));
   };
  }.start();
  return null;
 }
 
 
 protected Drawable loadImageFromUrl(String imageUrl) {
  try {
   //直接返回图片
   return Drawable.createFromStream(new URL(imageUrl).openStream(),"src");
  } catch (Exception e) {
  }
  return null;//返回空
 }
 //第一一个接口
 public interface ImageCallback{
  public void imageLoaded(Drawable imageDrawable,String imageUrl);
 }
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
关于接口的一些特点:
接口的变量一般都为常量。
接口的方法没方法是实现方式,不能被实例化。
接口没构造方法。
接口不能实现接口,但是接口可以继承接口
接口的方法可以通过类来实现。
 
 
 
下面是我写的小介绍案例
 
interface Animal{    void eatfood();    void running();} class Dog implements Animal{    public void eatfood(){       System.out.println("开始吃骨头啦!");    }    public void running(){       System.out.println("小狗跑来跑去!");    }} class Cat implements Animal{    public void eatfood(){       System.out.println("小猫吃鱼!");    }    public void running(){       System.out.println("小猫树上跑!");    }} public class InterTest{         public static void main(String[] args)         {                   Animal p=new Animal();                   p.eatfood();                   p.running();                   p=new Dog();                   p.eatfood();                   p.running();                   p=new Cat();                   p.eatfood();                   p.running();         }}
 
<span style="font-size:18px;"><span style="color:#333333;background: white;"></span></span> 
 
<span style="color:#909090;">------- </span><a target=_blank style="color: rgb(126, 93, 58);" href="http://www.itheima.com/" target="blank" rel="nofollow">android培训</a><span style="color:#909090;">、</span><a target=_blank style="color: rgb(126, 93, 58);" href="http://www.itheima.com/" target="blank" rel="nofollow">java培训</a><span style="color:#909090;">、</span><a target=_blank style="color: rgb(126, 93, 58);" href="http://www.itheima.com/" target="blank" rel="nofollow">IOS培训</a><span style="color:#909090;">、</span><a target=_blank style="color: rgb(126, 93, 58);" href="http://www.itheima.com/" target="blank" rel="nofollow">.Net培训</a><span style="color:#909090;">期待与您交流! ----------</span>