綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 求各位大大幫忙SimpleCursorAdapter

[複製連結] 查看: 1075|回覆: 5|好評: 0
跳轉到指定樓層
樓主
d19024 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2015-9-4 15:15

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 d19024 於 2015-9-4 16:19 編輯

        private void showGridView() {

                Cursor cursor = getCursor();

                String[] from = { NAME,COLOR,IMAGE };
                int[] to = { R.id.txtName,R.id.txtColor,R.id.ImageView};


                SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.data_item, cursor, from, to);
                gridview.setAdapter(adapter);
        }


怎樣可以把BLOB型別的IMAGE的圖片,利用上面的方法(文字的NAME跟CLOLO都可以顯示)顯示在GridView中


資料庫有四個欄位分別是_ID(自動),NAME(CHAR),COLOR(CHAR),IMAGE(BLOB)
data_item這個layout有2個TextView( R.id.txtName跟R.id.txtColor),一個ImageView(R.id.ImageView)


下面有三筆資料,圖中Android小人的位置,就是我想用來顯示該筆資料,所對應的圖片,文字可以顯示,可是圖片就不行
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
muska1116 | 收聽TA | 只看該作者
發表於 2015-9-6 17:13
試試看 adapter.setViewBinder(new ViewBinder() {

    public boolean setViewValue(View view, Cursor cursor, int columnIndex) {

                //在這裡把 blob 轉成 Bitmap 再指定給 ImageView

                return true;
    }
});
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| d19024 | 收聽TA | 只看該作者
發表於 2015-9-7 10:29
muska1116 發表於 2015-9-6 17:13
試試看 adapter.setViewBinder(new ViewBinder() {

    public boolean setViewValue(View view, Cursor c ...

請問是以下這樣嗎,可是系統會說"byte[] byteArr = cursor.getBlob(columnIndex);"這句有問題

private void showGridView() {
                Cursor cursor = getCursor();
                String[] from = { NAME,COLOR,IMAGE };
                int[] to = { R.id.txtName,R.id.txtColor,R.id.txtImage};
                SimpleCursorAdapter adapter = new    SimpleCursorAdapter(this,R.layout.data_item, cursor, from, to);
               
ViewBinder viewBinder = new ViewBinder() {

                      public boolean setViewValue(View view, Cursor cursor,
                                      int columnIndex) {
                            ImageView image = (ImageView) view;
                            byte[] byteArr = cursor.getBlob(columnIndex);
                            image.setImageBitmap(BitmapFactory.decodeByteArray(byteArr, 0, byteArr.length));
                            return true;
                        }
                    };

                    ImageView image = (ImageView) findViewById(R.id.txtImage);
                    viewBinder.setViewValue(image, cursor, cursor.getColumnIndex("image"));
                    adapter.setViewBinder(viewBinder);
                    gridview.setAdapter(adapter);
                }
}
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
muska1116 | 收聽TA | 只看該作者
發表於 2015-9-7 10:51
有 Log 的內容嗎?
不然試試看加一句 cursor.moveToFirst();
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

5
 樓主| d19024 | 收聽TA | 只看該作者
發表於 2015-9-7 16:22
muska1116 發表於 2015-9-7 10:51
有 Log 的內容嗎?
不然試試看加一句 cursor.moveToFirst();

可以了感謝你~~~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

6
muska1116 | 收聽TA | 只看該作者
發表於 2015-9-7 18:12
d19024 發表於 2015-9-7 16:22
可以了感謝你~~~


不客氣~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則