首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQLite加载图片滑动程序的源码

从SQLite加载图片滑动程序的源码
EN

Stack Overflow用户
提问于 2015-09-23 17:27:07
回答 2查看 71关注 0票数 0

我做了一本书,由140张图片组成,每张图片大约40kB。我不想因为缺乏安全性而将它们放在Drawables Folder中。所以我应该在sqlite中加载图像,并使用MikeOrtiz_TouchImageView "ViewPagerExample“类来滑动和缩放页面。

我的问题是如何将图像从数据库加载到图像滑动数组:int[] images或任何数组(我是初学者!)请详细解释一下)

代码语言:javascript
复制
package com.ortiz.touch;

import com.example.touch.R;

import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

public class ViewPagerExampleActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_viewpager_example);
        ExtendedViewPager mViewPager = (ExtendedViewPager) findViewById(R.id.view_pager);
        mViewPager.setAdapter(new TouchImageAdapter());
    }

    static class TouchImageAdapter extends PagerAdapter {

        private static int[] images = {
            R.drawable.nature_1, R.drawable.nature_2, R.drawable.nature_3, R.drawable.nature_4, R.drawable.nature_5
        };

        @Override
        public int getCount() {
            return images.length;
        }

        @Override
        public View instantiateItem(ViewGroup container, int position) {
            TouchImageView img = new TouchImageView(container.getContext());
            img.setImageResource(images[position]);
            container.addView(img, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
            return img;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }

    }
}

除了这些解释之外,还有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2015-09-23 17:34:40

保存到数据库:位图到byte[];用户图像: byte[]到位图;但它没有用;如果人们想要,可以获得你的源代码;

票数 0
EN

Stack Overflow用户

发布于 2015-09-23 17:36:21

您可以从DB获取图像作为Blob,并可以转换为位图数组

代码语言:javascript
复制
  String query = "SELECT * FROM '" + tablename+ "'";
      Cursor tileCursor = database.rawQuery(query,null);//create a database object
    ArrayList<Bitmap> images=new ArrayList<Bitmap>();

    while(!tileCursor.isAfterLast())
    {
    byte[] bitmapdata =tileCursor.getBlob(tileCursor.getColumnIndex("Imagecolumnname"));
    Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);
     images.Add(bitmap );
  tileCursor.moveToNext();
    }

然后使用以下命令设置它:

代码语言:javascript
复制
  @Override
    public View instantiateItem(ViewGroup container, int position) {
        TouchImageView img = new TouchImageView(container.getContext());
        img.setImageBitmap(images.get(position));
        container.addView(img, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
        return img;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32735761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档