ImageLoader的缓存+PopupWindow的一些使用

package demo01.com.bawei.xlistview.refresh;


import android.app.Application;
import android.os.Environment;


import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;


import java.io.File;



public class MyApplication extends Application{
    @Override
    public void onCreate() {
       
String path = Environment.getExternalStorageDirectory()+"/123";

File cacheDir = new File(path);

//没有网的情况,首先回去内存找图片, 如果内存不存在次张图片的话,去sdcard,->去网络加载
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
        //配置线程的优先级,图片加载为首
        .threadPriority(100)
        //指定由多个线程去加载图片
        .threadPoolSize(5)
        //指定要缓存多大尺寸的图片(内存缓存)
        .memoryCacheExtraOptions(200,200)
        //配置sdcard缓存路径
        .diskCache(new UnlimitedDiskCache(cacheDir))
        //指定图片的名字,根据MD5算出来的一个串号(串号不会重名)
        .diskCacheFileNameGenerator(new Md5FileNameGenerator())
        //指明图片在内存占用多大空间(APP默认空间1/8)
        .memoryCacheSize(2 * 1024 * 1024)
        //指定图片在sdcard缓存多大(指的是占用空间)
        .diskCacheSize(50 * 1024 * 1024)
        .build();


ImageLoader.getInstance().init(config);

    }
    /**
     * 配置图片是否缓存
     */
    public static DisplayImageOptions getDisplayImageOption(){
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageForEmptyUri(R.mipmap.ic_empty)
                .showImageOnFail(R.mipmap.ic_error)

                .showImageOnLoading(R.mipmap.loading)

	//这是设置圆形头像
	.displayer(new CircleBitmapDisplayer())

                .cacheInMemory(true)
                .cacheOnDisk(true)
                .build();
        return options;
    }

}


//Window

package demo01.com.bawei.popwindow;

import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.PopupWindow;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView mMenuTv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mMenuTv = (TextView) findViewById(R.id.menu);
        mMenuTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showPopWindow();
            }
        });
    }
    private void showPopWindow(){
        View view = View.inflate(this, R.layout.item, null);
        PopupWindow window = new PopupWindow(view,100,100);
        //下面这代码就是点击外面可以退出pop 两个缺一不可
        window.setBackgroundDrawable(new ColorDrawable());
        window.setOutsideTouchable(true);

        TextView tv1 = (TextView) view.findViewById(R.id.pop_computer);
        TextView tv2 = (TextView) view.findViewById(R.id.pop_financial);
        TextView tv3 = (TextView) view.findViewById(R.id.pop_manage);
        window.showAsDropDown(mMenuTv);
    }
}
//popupwindow的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:background="#ff00"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/pop_computer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="计算机"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#000000"
       />

    <TextView
        android:id="@+id/pop_financial"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="金融"/>

    <View
        android:layout_width="match_parent"
        android:background="#000000"
        android:layout_height="1dp"
        />

    <TextView
        android:id="@+id/pop_manage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="管理"/>

    <View
        android:layout_width="match_parent"
        android:background="#000000"
        android:layout_height="1dp"/>

</LinearLayout>
//activity中布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context="demo01.com.bawei.popwindow.MainActivity">



        <TextView
            android:id="@+id/menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#50484b"
            android:padding="10dp"
            android:text="菜单"/>



</LinearLayout>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值