Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android通用图像加载器从url设置壁纸_Android_Image_Loader_Universal_Setbackground - Fatal编程技术网

Android通用图像加载器从url设置壁纸

Android通用图像加载器从url设置壁纸,android,image,loader,universal,setbackground,Android,Image,Loader,Universal,Setbackground,我试着用通用图像加载器做背景。但事实并非如此 这是BaseActivity.java 源代码: 如何将所选图像作为背景粘贴到墙纸上。 我知道所选图像url的>>imageUrls2[pagerPosition] BaseActivity.java //Copyright 2011-2013 Sergey Tarasevich package com.nostra13.example.universalimageloader; import android.app.Activity; im

我试着用通用图像加载器做背景。但事实并非如此 这是BaseActivity.java 源代码: 如何将所选图像作为背景粘贴到墙纸上。 我知道所选图像url的>>imageUrls2[pagerPosition]

BaseActivity.java

    //Copyright 2011-2013 Sergey Tarasevich
package com.nostra13.example.universalimageloader;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import com.nostra13.example.universalimageloader.Constants.Extra;
import com.nostra13.universalimageloader.core.ImageLoader;

public abstract class BaseActivity extends Activity {

String[] imageUrls2;
protected ImageLoader imageLoader = ImageLoader.getInstance();

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.item_clear_memory_cache:
            imageLoader.clearMemoryCache();
            return true;
        case R.id.item_clear_disc_cache:
            imageLoader.clearDiscCache();
            return true;
        case R.id.setBg: //Set Background Menu 

            Bundle bundle = getIntent().getExtras();
            imageUrls2 = bundle.getStringArray(Extra.IMAGES);

            int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0);

            Toast.makeText(getApplicationContext(), imageUrls2[pagerPosition], Toast.LENGTH_LONG).show();
    //For example http://www.wallpaperfx.com/view_image/abstract-glass-paint-1600x900-wallpaper-14862.jpg
            }
            return false;
}

}
ImageGalleryActivity.java

    package com.nostra13.example.universalimageloader;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

import com.nostra13.example.universalimageloader.Constants.Extra;
import com.nostra13.universalimageloader.core.DisplayImageOptions;

/**
 * @author Sergey Tarasevich (nostra13[at]gmail[dot]com)
 */
@SuppressWarnings("deprecation")
public class ImageGalleryActivity extends BaseActivity {

    String[] imageUrls;

    DisplayImageOptions options;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ac_image_gallery);

        Bundle bundle = getIntent().getExtras();
        imageUrls = bundle.getStringArray(Extra.IMAGES);

        options = new DisplayImageOptions.Builder()
            .showImageOnLoading(R.drawable.ic_stub)
            .showImageForEmptyUri(R.drawable.ic_empty)
            .showImageOnFail(R.drawable.ic_error)
            .cacheInMemory(true)
            .cacheOnDisk(true)
            .considerExifParams(true)
            .bitmapConfig(Bitmap.Config.RGB_565)
            .build();

        Gallery gallery = (Gallery) findViewById(R.id.gallery);
        gallery.setAdapter(new ImageGalleryAdapter());
        gallery.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                startImagePagerActivity(position);
            }
        });
    }

    private void startImagePagerActivity(int position) {
        Intent intent = new Intent(this, ImagePagerActivity.class);
        intent.putExtra(Extra.IMAGES, imageUrls);
        intent.putExtra(Extra.IMAGE_POSITION, position);
        startActivity(intent);
    }

    private class ImageGalleryAdapter extends BaseAdapter {
        @Override
        public int getCount() {
            return imageUrls.length;
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView = (ImageView) convertView;
            if (imageView == null) {
                imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_gallery_image, parent, false);
            }
            imageLoader.displayImage(imageUrls[position], imageView, options);
            return imageView;
        }
    }
}

根据您的信息,我认为您可以在基本活动上使用受保护方法或抽象方法,并在子类活动ImagePagePractivity中重写它。它看起来像这样:

 public abstract class BaseActivity extends Activity {

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item_clear_memory_cache:
                imageLoader.clearMemoryCache();
                return true;
            case R.id.item_clear_disc_cache:
                imageLoader.clearDiscCache();
                return true;
            case R.id.setBg: //Set Background Menu 

                Bundle bundle = getIntent().getExtras();
                imageUrls2 = bundle.getStringArray(Extra.IMAGES);
                int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0);
                Toast.makeText(getApplicationContext(), imageUrls2[pagerPosition], Toast.LENGTH_LONG).show();

                // call protected method, subclass should override it
                displayImage(imageUrls2[pagerPosition]);    
                }
                return false;
    }

    protected void displayImage(String imageUrl){}
}

public class ImagePagerActivity extends BaseActivity{       
    @override
    public void displayImage(String imageUrl){
        imageLoader.displayImage(imageUrl, Your_Image_View);        
    }
}

我没有看到您要显示的imageview。并尝试清除您的问题如果我理解正确,您有一个图像库,选择它的项目将转到寻呼机活动。但您想在哪里显示图像呢?当在OnOptions ItemSelected中选择选项菜单时?或者在ImagePageActivity中?我想在OnOptions ItemSelected屏幕截图中显示BaseActivity:因为BaseActivity是抽象类,所以它中没有视图,所以不能显示到其中。我认为您希望在BaseActivity的子类上显示图像,在本例中,它是ImagePagePractivity