Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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
存储从gallery android中拾取的图像_Android - Fatal编程技术网

存储从gallery android中拾取的图像

存储从gallery android中拾取的图像,android,Android,我想点击“btnchooserphoto”按钮从gallery和 我现在可以做,但我想存储这些图像,当我再次单击“btnchooserphoto”按钮时,我可以添加其他图像,并且我拾取的图像仍然存在。但是现在图像加载器每次都会重新初始化。。。日志在下面 W/ImageLoader(4503):尝试初始化之前已初始化的ImageLoader。要使用新配置重新初始化ImageLoader,请首先调用ImageLoader.destroy()。 有人知道怎么修吗?谢谢 这是我的密码 主相册 publi

我想点击“btnchooserphoto”按钮从gallery和 我现在可以做,但我想存储这些图像,当我再次单击“btnchooserphoto”按钮时,我可以添加其他图像,并且我拾取的图像仍然存在。但是现在图像加载器每次都会重新初始化。。。日志在下面

W/ImageLoader(4503):尝试初始化之前已初始化的ImageLoader。要使用新配置重新初始化ImageLoader,请首先调用ImageLoader.destroy()。

有人知道怎么修吗?谢谢

这是我的密码

主相册

public class Album_Main extends Activity {

private Button mbtn,mbtn_choosephoto;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.album_setting);

        mbtn_choosephoto=(Button)findViewById(R.id.btnchooserphoto);
        mbtn_choosephoto.setOnClickListener(mbtnchoosephotoonclick);
}


private View.OnClickListener mbtnchoosephotoonclick = new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        Intent it = new Intent();
        it.setClass(Album_Main.this, Album_Setting.class);
        startActivity(it);
    }
};


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
}

相册设置

public class Album_Setting extends Activity {

GridView gridGallery;
Handler handler;
GalleryAdapter adapter;

ImageView imgSinglePick;
Button btnGalleryPick;
Button btnGalleryPickMul;
Button mbtngoback;

String action;
ViewSwitcher viewSwitcher;
ImageLoader imageLoader;



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.album_setting_main);


    initImageLoader();
    init();

}

private void initImageLoader() {
    DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
            .cacheOnDisc().imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
            .bitmapConfig(Bitmap.Config.RGB_565).build();
    ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(
            this).defaultDisplayImageOptions(defaultOptions).memoryCache(
            new WeakMemoryCache());

    ImageLoaderConfiguration config = builder.build();
    imageLoader = ImageLoader.getInstance();
    imageLoader.init(config);

}

private void init() {

    handler = new Handler();
    gridGallery = (GridView) findViewById(R.id.gridGallery);
    gridGallery.setFastScrollEnabled(true);
    adapter = new GalleryAdapter(getApplicationContext(), imageLoader);
    adapter.setMultiplePick(false);
    gridGallery.setAdapter(adapter);

    viewSwitcher = (ViewSwitcher) findViewById(R.id.viewSwitcher);
    viewSwitcher.setDisplayedChild(1);

    mbtngoback=(Button)findViewById(R.id.btngoback);
    mbtngoback.setOnClickListener(mbtngobackonclick);


    btnGalleryPickMul = (Button) findViewById(R.id.btnGalleryPickMul);
    btnGalleryPickMul.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent i = new Intent(Action.ACTION_MULTIPLE_PICK);
            startActivityForResult(i, 200);
        }
    });

}

private View.OnClickListener mbtngobackonclick = new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        finish();
    }
};
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 200 && resultCode == Activity.RESULT_OK) {
        String[] all_path = data.getStringArrayExtra("all_path");

        ArrayList<CustomGallery> dataT = new ArrayList<CustomGallery>();

        for (String string : all_path) {
            CustomGallery item = new CustomGallery();
            item.sdcardPath = string;

            dataT.add(item);
        }

        storeimage(dataT);
    }
}
private void storeimage(ArrayList<CustomGallery> dataT){
    viewSwitcher.setDisplayedChild(0);
    adapter.addAll(dataT);
}
公共类相册\u设置扩展活动{
GridView gridGallery;
处理者;
厨房适配器;
ImageView imgSinglePick;
按钮btnGalleryPick;
按钮btnGalleryPickMul;
按钮mbtngoback;
弦作用;
取景器取景器;
图像加载器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.album\u setting\u main);
initImageLoader();
init();
}
私有void initImageLoader(){
DisplayImageOptions defaultOptions=新建DisplayImageOptions.Builder()
.cacheOnDisc().imageScaleType(imageScaleType.Justice_拉伸)
.bitmapConfig(Bitmap.Config.RGB_565).build();
ImageLoaderConfiguration.Builder=新建ImageLoaderConfiguration.Builder(
此.defaultDisplayImageOptions(defaultOptions).memoryCache(
新的WeakMemoryCache());
ImageLoaderConfiguration config=builder.build();
imageLoader=imageLoader.getInstance();
init(config);
}
私有void init(){
handler=新的handler();
gridGallery=(GridView)findViewById(R.id.gridGallery);
gridGallery.setFastScrollEnabled(true);
适配器=新的GalleryAdapter(getApplicationContext(),imageLoader);
adapter.setMultiplePick(假);
设置适配器(适配器);
viewSwitcher=(viewSwitcher)findViewById(R.id.viewSwitcher);
viewSwitcher.setDisplayedChild(1);
mbtngoback=(按钮)findviewbyd(R.id.btngoback);
setOnClickListener(mbtngobackonclick);
btnGalleryPickMul=(按钮)findViewById(R.id.btnGalleryPickMul);
btnGalleryPickMul.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意图i=新意图(Action.Action\u MULTIPLE\u PICK);
startActivityForResult(i,200);
}
});
}
private View.OnClickListener mbtngobackonclick=new View.OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
完成();
}
};
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==200&&resultCode==Activity.RESULT\u确定){
String[]all_path=data.getStringArrayExtra(“all_path”);
ArrayList dataT=新的ArrayList();
for(字符串:所有路径){
CustomGallery项=新建CustomGallery();
item.sdcardPath=字符串;
数据添加(项目);
}
storeimage(dataT);
}
}
私有void存储映像(ArrayList数据){
viewSwitcher.setDisplayedChild(0);
adapter.addAll(dataT);
}
}

CustomGalleryActivity

public class CustomGalleryActivity extends Activity {

GridView gridGallery;
Handler handler;
GalleryAdapter adapter;

ImageView imgNoMedia;
Button btnGalleryOk;

String action;
private ImageLoader imageLoader;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.gallery);

    action = getIntent().getAction();
    if (action == null) {
        finish();
    }

        initImageLoader();
        init();



}

private void initImageLoader() {
    try {
        String CACHE_DIR = Environment.getExternalStorageDirectory()
                .getAbsolutePath() + "/.temp_tmp";
        new File(CACHE_DIR).mkdirs();

        File cacheDir = StorageUtils.getOwnCacheDirectory(getBaseContext(),
                CACHE_DIR);

        DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
                .cacheOnDisc(true).imageScaleType(ImageScaleType.EXACTLY).cacheOnDisc(true)
                .bitmapConfig(Bitmap.Config.RGB_565).build();
        ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(
                getBaseContext())
                .defaultDisplayImageOptions(defaultOptions)
                .discCache(new UnlimitedDiscCache(cacheDir))
                .memoryCache(new WeakMemoryCache());

        ImageLoaderConfiguration config = builder.build();
        imageLoader = ImageLoader.getInstance();
        imageLoader.init(config);

    } catch (Exception e) {

    }
}

private void init() {

    handler = new Handler();
    gridGallery = (GridView) findViewById(R.id.gridGallery);
    gridGallery.setFastScrollEnabled(true);
    adapter = new GalleryAdapter(getApplicationContext(), imageLoader);
    PauseOnScrollListener listener = new PauseOnScrollListener(imageLoader,
            true, true);
    gridGallery.setOnScrollListener(listener);

    if (action.equalsIgnoreCase(Action.ACTION_MULTIPLE_PICK)) {

        findViewById(R.id.llBottomContainer).setVisibility(View.VISIBLE);
        gridGallery.setOnItemClickListener(mItemMulClickListener);
        adapter.setMultiplePick(true);

    } else if (action.equalsIgnoreCase(Action.ACTION_PICK)) {

        findViewById(R.id.llBottomContainer).setVisibility(View.GONE);
        gridGallery.setOnItemClickListener(mItemSingleClickListener);
        adapter.setMultiplePick(false);

    }

    gridGallery.setAdapter(adapter);
    imgNoMedia = (ImageView) findViewById(R.id.imgNoMedia);

    btnGalleryOk = (Button) findViewById(R.id.btnGalleryOk);
    btnGalleryOk.setOnClickListener(mOkClickListener);

    new Thread() {

        @Override
        public void run() {
            Looper.prepare();
            handler.post(new Runnable() {

                @Override
                public void run() {
                    adapter.addAll(getGalleryPhotos());
                    checkImageStatus();
                }
            });
            Looper.loop();
        };

    }.start();

}

private void checkImageStatus() {
    if (adapter.isEmpty()) {
        imgNoMedia.setVisibility(View.VISIBLE);
    } else {
        imgNoMedia.setVisibility(View.GONE);
    }
}

View.OnClickListener mOkClickListener = new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        ArrayList<CustomGallery> selected = adapter.getSelected();

        String[] allPath = new String[selected.size()];
        for (int i = 0; i < allPath.length; i++) {
            allPath[i] = selected.get(i).sdcardPath;
        }

        Intent data = new Intent().putExtra("all_path", allPath);
        setResult(RESULT_OK, data);
        finish();

    }
};
AdapterView.OnItemClickListener mItemMulClickListener = new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> l, View v, int position, long id) {
        adapter.changeSelection(v, position);

    }
};

AdapterView.OnItemClickListener mItemSingleClickListener = new AdapterView.OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> l, View v, int position, long id) {
        CustomGallery item = adapter.getItem(position);
        Intent data = new Intent().putExtra("single_path", item.sdcardPath);
        setResult(RESULT_OK, data);
        finish();
    }
};

private ArrayList<CustomGallery> getGalleryPhotos() {
    ArrayList<CustomGallery> galleryList = new ArrayList<CustomGallery>();

    try {
        final String[] columns = { MediaStore.Images.Media.DATA,
                MediaStore.Images.Media._ID };
        final String orderBy = MediaStore.Images.Media._ID;

        Cursor imagecursor = managedQuery(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns,
                null, null, orderBy);

        if (imagecursor != null && imagecursor.getCount() > 0) {

            while (imagecursor.moveToNext()) {
                CustomGallery item = new CustomGallery();

                int dataColumnIndex = imagecursor
                        .getColumnIndex(MediaStore.Images.Media.DATA);

                item.sdcardPath = imagecursor.getString(dataColumnIndex);

                galleryList.add(item);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    // show newest photo at beginning of the list
    Collections.reverse(galleryList);
    return galleryList;
}
公共类CustomGalleryActivity扩展活动{
GridView gridGallery;
处理者;
厨房适配器;
ImageView媒体;
按钮btnGalleryOk;
弦作用;
私有图像加载器;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.gallery);
action=getIntent().getAction();
if(action==null){
完成();
}
initImageLoader();
init();
}
私有void initImageLoader(){
试一试{
String CACHE_DIR=Environment.getExternalStorageDirectory()
.getAbsolutePath()+“/.temp_tmp”;
新文件(CACHE_DIR).mkdirs();
文件cacheDir=StorageUtils.getOwnCacheDirectory(getBaseContext(),
CACHE_DIR);
DisplayImageOptions defaultOptions=新建DisplayImageOptions.Builder()
.cacheOnDisc(true).imageScaleType(imageScaleType.justice).cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.RGB_565).build();
ImageLoaderConfiguration.Builder=新建ImageLoaderConfiguration.Builder(
getBaseContext())
.defaultDisplayImageOptions(默认选项)
.discCache(新的未限制的缓存(cacheDir))
.memoryCache(新的WeakMemoryCache());
ImageLoaderConfiguration config=builder.build();
imageLoader=imageLoader.getInstance();
init(config);
}捕获(例外e){
}
}
私有void init(){
handler=新的handler();
gridGallery=(GridView)findViewById(R.id.gridGallery);
gridGallery.setFastScrollEnabled(true);
适配器=新的GalleryAdapter(getApplicationContext(),imageLoader);
PauseonSrollListener=新的PauseonSrollListener(imageLoader,
真的,真的);
setOnScrollListener(listener);
if(action.equalsIgnoreCase(action.action\u MULTIPLE\u PICK)){
findviewbyd(R.id.llBottomContainer).setVisibility(View.VISIBLE);
setOnItemClickListener(miteMulClickListener);
adapter.setMultiplePick(真);
}else if(action.equalsIgnoreCase(action.action\u PICK)){
findviewbyd(R.id.llBottomContainer).setVisibility(View.GONE);
setOnItemClickListener(mItemSingleClickListener);
adapter.setMultiplePick(假);
}
设置适配器(适配器);