Android:通用图像加载器

Android:通用图像加载器,android,Android,我想用Android通用图像加载器显示图像。我想在HorizontalScrollView中显示来自内部存储器的图像,但即使我获得了内部存储器的路径,图像也不会显示。这是我的代码 这是我的适配器类 class MyListAdapter extends ArrayAdapter<All_Post> { Context context; int layoutResourceId; private ImageLoader imageLoader; pri

我想用Android通用图像加载器显示图像。我想在HorizontalScrollView中显示来自内部存储器的图像,但即使我获得了内部存储器的路径,图像也不会显示。这是我的代码

这是我的适配器类

 class MyListAdapter extends ArrayAdapter<All_Post> {
    Context context;
    int layoutResourceId;
    private ImageLoader imageLoader;
    private ImageLoaderConfiguration config;
    private DisplayImageOptions options;


    ArrayList<All_Post> data = new ArrayList<All_Post>();

    public MyListAdapter(Context context, int layoutResourceId, ArrayList<All_Post> data) {
        super(context, layoutResourceId, data);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.data = data;

        imageLoader = ImageLoader.getInstance();
        imageLoader.init(ImageLoaderConfiguration.createDefault(context));

        options = new DisplayImageOptions.Builder()
                .showImageForEmptyUri(R.drawable.img_placeholder)
                .resetViewBeforeLoading(true)
                .cacheOnDisk(true)
                .imageScaleType(ImageScaleType.EXACTLY)
                .bitmapConfig(Bitmap.Config.RGB_565)
                .considerExifParams(true)
                .displayer(new FadeInBitmapDisplayer(300))
                .build();
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

@Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View row = convertView;
        final Holder holder;
        if (row == null) {
            LayoutInflater vi;
            vi = LayoutInflater.from(getContext());
            row = vi.inflate(R.layout.all_post_row, null);
            holder = new Holder();
 holder.horizontalScrollView = (HorizontalScrollView) row.findViewById(R.id.hlist);
            holder.lLinearLayout = (LinearLayout) row.findViewById(R.id.innerlay);
            row.setTag(holder);
        } else {
            holder = (Holder) row.getTag();
        }
 holder.lLinearLayout.removeAllViews();
        final Iterator<String> it = imageArray.iterator();
        while (it.hasNext())
        {
 if (imgElement.endsWith(png_Pattern) || imgElement.endsWith(jpg_pattern) || imgElement.endsWith(bmp_pattern) || imgElement.endsWith(gif_pattern) || imgElement.endsWith(jpeg_pattern))
            {
                LayoutInflater mInflater;
                mInflater = LayoutInflater.from(getContext());
                View cur_deal = mInflater.inflate(R.layout.horizontalitem, holder.lLinearLayout, false);

                final ImageView imageView = (ImageView) cur_deal.findViewById(R.id.image_AllPost);
                imageView.setImageResource(R.drawable.img_placeholder);

                pBar = (ProgressBar) cur_deal.findViewById(R.id.pBar_AllPost);
                pBar.setVisibility(View.VISIBLE);

                holder.lLinearLayout.addView(cur_deal);

 Log.e("imgElement*************", " = " + imgElement);
                String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
                String path = baseDir + "/classnkk_images/" + imgElement;
                Log.e("path ", " = " + path);

                File photos = new File(path);
                final Bitmap bitmapResizeImage = decodeFile(photos);

                long length = photos.length();
                length = length/1024;
                Log.e("png_Pattern length ", " = " + length);
                if(length != 0 || length > 0)
                {

 Log.e("imgElement*************", " = " + imgElement);
                            //String baseDir1 = Environment.getExternalStorageDirectory().getAbsolutePath();
                            String baseDir1 = Environment.getDataDirectory().getAbsolutePath();
                            String path1 = baseDir1 + "/classnkk_images/" + imgElement;
                            Log.e("path ", " = " + path);

                            String str_IMAGE_URLS = namespace + "/DownloadFile/FileName/" + imgElement;
                            ImageLoader.getInstance().displayImage(path1, imageView, options, new SimpleImageLoadingListener() {
                                @Override
                                public void onLoadingStarted(String imageUri, View view) {
                                    pBar.setProgress(0);
                                    pBar.setVisibility(View.VISIBLE);
                                }

                                @Override
                                public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                                    pBar.setVisibility(View.GONE);
                                }

                                @Override
                                public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                                    pBar.setVisibility(View.GONE);
                                }
                            }, new ImageLoadingProgressListener() {
                                @Override
                                public void onProgressUpdate(String imageUri, View view, int current, int total) {
                                    pBar.setProgress(Math.round(100.0f * current / total));
                                }

                            });
                        }
类MyListAdapter扩展了ArrayAdapter{
语境;
国际布局资源;
私有图像加载器;
私有ImageLoaderConfiguration配置;
私有显示图像选项;
ArrayList数据=新的ArrayList();
公共MyListAdapter(上下文上下文、int layoutResourceId、ArrayList数据){
超级(上下文、布局资源ID、数据);
this.layoutResourceId=layoutResourceId;
this.context=上下文;
这个数据=数据;
imageLoader=imageLoader.getInstance();
init(ImageLoaderConfiguration.createDefault(上下文));
选项=新建DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.img_占位符)
.ResetViewBefore加载(真)
.cacheOnDisk(真)
.imageScaleType(imageScaleType.Justice)
.bitmapConfig(Bitmap.Config.RGB_565)
.considerExifParams(真)
.显示器(新FadeInBitmapDisplayer(300))
.build();
}
@凌驾
public int getCount(){
返回data.size();
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图行=转换视图;
最终持有人;
if(行==null){
拉平机vi;
vi=LayoutInflater.from(getContext());
行=vi.充气(R.布局.所有后行,空);
保持架=新保持架();
holder.horizontalScrollView=(horizontalScrollView)row.findViewById(R.id.hlist);
holder.lLinearLayout=(LinearLayout)row.findViewById(R.id.innerlay);
row.setTag(支架);
}否则{
holder=(holder)行。getTag();
}
holder.lLinearLayout.removeAllViews();
最终迭代器it=imageArray.Iterator();
while(it.hasNext())
{
if(imgElement.endsWith(png|U模式)| imgElement.endsWith(jpg|U模式)| imgElement.endsWith(bmp|U模式)| imgElement.endsWith(gif|U模式)| imgElement.endsWith(jpeg|模式))
{
拉平机;
mInflater=LayoutInflater.from(getContext());
视图cur_deal=mInflater.充气(R.layout.horizontalitem,holder.linearlayout,false);
最终ImageView ImageView=(ImageView)cur_deal.findViewById(R.id.image_AllPost);
setImageResource(R.drawable.img_占位符);
pBar=(ProgressBar)cur_deal.findviewbyd(R.id.pBar_AllPost);
pBar.setVisibility(View.VISIBLE);
持有者。lLinearLayout。addView(当前交易);
Log.e(“imgElement**********”,“=”+imgElement);
字符串baseDir=Environment.getExternalStorageDirectory().getAbsolutePath();
字符串路径=baseDir+“/classnkk_images/”+imgElement;
Log.e(“路径”、“=”+path);
文件照片=新文件(路径);
最终位图bitmapResizeImage=解码文件(照片);
long length=photos.length();
长度=长度/1024;
Log.e(“png_图案长度”,“=”+长度);
如果(长度!=0 | |长度>0)
{
Log.e(“imgElement**********”,“=”+imgElement);
//字符串baseDir1=Environment.getExternalStorageDirectory().getAbsolutePath();
字符串baseDir1=Environment.getDataDirectory().getAbsolutePath();
字符串路径1=baseDir1+“/classnkk_images/”+imgElement;
Log.e(“路径”、“=”+path);
字符串str_IMAGE_url=namespace+“/DownloadFile/FileName/”+imgElement;
ImageLoader.getInstance().displayImage(路径1,imageView,选项,新SimpleImageLoadingListener(){
@凌驾
public void onLoadingStarted(字符串imageUri,视图){
pBar.setProgress(0);
pBar.setVisibility(View.VISIBLE);
}
@凌驾
public void onload失败(字符串imageUri、视图视图、失败原因){
pBar.setVisibility(View.GONE);
}
@凌驾
public void onLoadingComplete(字符串imageUri、视图视图、位图加载图像){
pBar.setVisibility(View.GONE);
}
},新建ImageLoadingProgressListener(){
@凌驾
public void onProgressUpdate(字符串imageUri、视图视图、int current、int total){
pBar.setProgress(数学圆整(100.0f*当前/总计));
}
});
}
感谢您用advanced

代替此

String str_IMAGE_URLS = namespace + "/DownloadFile/FileName/" + imgElement;
                        ImageLoader.getInstance().displayImage(path1, imageView, options, new SimpleImageLoadingListener() {
                            @Override
                            public void onLoadingStarted(String imageUri, View view) {
                                pBar.setProgress(0);
                                pBar.setVisibility(View.VISIBLE);
                            }

                            @Override
                            public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                                pBar.setVisibility(View.GONE);
                            }

                            @Override
                            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                                pBar.setVisibility(View.GONE);
                            }
                        }, new ImageLoadingProgressListener() {
                            @Override
                            public void onProgressUpdate(String imageUri, View view, int current, int total) {
                                pBar.setProgress(Math.round(100.0f * current / total));
                            }

                        });
使用此代码

String str_IMAGE_URLS = namespace + "/DownloadFile/FileName/" + imgElement;
                        imageLoader.displayImage(str_IMAGE_URLS , imageView, options, new SimpleImageLoadingListener() {
                            @Override
                            public void onLoadingStarted(String imageUri, View view) {
                                pBar.setProgress(0);
                                pBar.setVisibility(View.VISIBLE);
                            }

                            @Override
                            public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                                pBar.setVisibility(View.GONE);
                            }

                            @Override
                            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                                pBar.setVisibility(View.GONE);
                            }
                        }, new ImageLoadingProgressListener() {
                            @Override
                            public void onProgressUpdate(String imageUri, View view, int current, int total) {
                                pBar.setProgress(Math.round(100.0f * current / total));
                            }

                        });

请添加日志,但我希望使用此图像路径显示图像字符串baseDir1=Environment.getDataDirectory().getAbsolutePath();字符串路径1=baseDir1+“/classnkk_images/”+imgElement;Log.e(“路径”,“=”+path);我已经解决了这个问题。使用字符串baseDir1=Environment.getExternalStorageDirectory().getAbsolutePath();字符串path1=“文件: