Android 如何将缩略图位图转换为Uri?

Android 如何将缩略图位图转换为Uri?,android,sqlite,video,bitmap,thumbnails,Android,Sqlite,Video,Bitmap,Thumbnails,我正在尝试获取存储在数据库中的视频的Uri,以便将其作为缩略图获取。我已成功地将其转换为位图,但我似乎无法获取该位图的Uri,因此我可以使用后端的光标在列表中显示视频缩略图。 下一行显示由空值提供的错误 Uri Uri1= Uri.parse(path);\\from__NEWS_Feedoverlay---class 请查看下面的代码片段 ------------------------助手类中的xxxxxxxxx方法-------------------------------------

我正在尝试获取存储在数据库中的视频的Uri,以便将其作为缩略图获取。我已成功地将其转换为位图,但我似乎无法获取该位图的Uri,因此我可以使用后端的光标在列表中显示视频缩略图。 下一行显示由空值提供的错误

Uri Uri1= Uri.parse(path);\\from__NEWS_Feedoverlay---class
请查看下面的代码片段

------------------------助手类中的xxxxxxxxx方法------------------------------------------------------------------------

public Cursor getCursor()
{
    String where=null;
    db= this.getReadableDatabase();
    //db.rawQuery("select image , name from images",null);
    //Cursor cursor = db.rawQuery("select _id, name from images",null);
    Cursor cursor= db.query(true,TABLE_Images,KEY,where,null,null,null,null,null,null);
    if (cursor!=null)
    {
        cursor.moveToFirst();

    }
    return cursor;
Cursor cursor = helper.getCursor();
        startManagingCursor(cursor);
        //setup for MApping in view fields
        Uri myUri= Uri.parse(helper.KEY_IMAGE);
      // Uri Uri1=  MediaStore.Video.Thumbnails.getContentUri(helper.KEY_FILE);
       Bitmap bMap = ThumbnailUtils.createVideoThumbnail(helper.KEY_FILE, MediaStore.Video.Thumbnails.MICRO_KIND);

        String path = MediaStore.Images.Media.insertImage(getContentResolver(), bMap, "Title", null);
        Uri Uri1= Uri.parse(path);
       // ContentResolver crThumb = getContentResolver();

        //Bitmap bitmap =MediaStore.Video.Thumbnails.getThumbnail(crThumb, Long.parseLong(helper.KEY_FILE),MediaStore.Video.Thumbnails.MICRO_KIND,null);

        String [] fromFieldNames=new String[]{helper.KEY_NAME, String.valueOf(Uri1)};


        int[] toViewID= new int[]{R.id.title,R.id.list_video};
        SimpleCursorAdapter myadaptor= new SimpleCursorAdapter(this, R.layout.list_row, cursor,fromFieldNames,toViewID );
        ListView mylist= (ListView)findViewById(R.id.list);
        mylist.setAdapter(myadaptor);
FATAL EXCEPTION: main
                                                                              Process: com.example.sanya.ar_expeditor, PID: 2675
                                                                              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sanya.ar_expeditor/com.example.sanya.ar_expeditor.NewsFeed_Viewoverlay}: java.lang.NullPointerException: uriString
                                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
                                                                                  at android.app.ActivityThread.access$800(ActivityThread.java:156)
                                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                  at android.os.Looper.loop(Looper.java:211)
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5371)
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
                                                                               Caused by: java.lang.NullPointerException: uriString
                                                                                  at android.net.Uri$StringUri.<init>(Uri.java:475)
                                                                                  at android.net.Uri$StringUri.<init>(Uri.java:465)
                                                                                  at android.net.Uri.parse(Uri.java:437)
                                                                                  at com.example.sanya.ar_expeditor.NewsFeed_Viewoverlay.onCreate(NewsFeed_Viewoverlay.java:48)
                                                                                  at android.app.Activity.performCreate(Activity.java:5990)
                                                                                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
                                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) 
                                                                                  at android.app.ActivityThread.access$800(ActivityThread.java:156) 
                                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351) 
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                  at android.os.Looper.loop(Looper.java:211) 
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5371) 
                                                                                  at java.lang.reflect.Method.invoke(Native Method) 
                                                                                  at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945) 
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740) 
------------------------------XXXXXXXXXXXXX——新闻和新闻覆盖——类---------------------

public Cursor getCursor()
{
    String where=null;
    db= this.getReadableDatabase();
    //db.rawQuery("select image , name from images",null);
    //Cursor cursor = db.rawQuery("select _id, name from images",null);
    Cursor cursor= db.query(true,TABLE_Images,KEY,where,null,null,null,null,null,null);
    if (cursor!=null)
    {
        cursor.moveToFirst();

    }
    return cursor;
Cursor cursor = helper.getCursor();
        startManagingCursor(cursor);
        //setup for MApping in view fields
        Uri myUri= Uri.parse(helper.KEY_IMAGE);
      // Uri Uri1=  MediaStore.Video.Thumbnails.getContentUri(helper.KEY_FILE);
       Bitmap bMap = ThumbnailUtils.createVideoThumbnail(helper.KEY_FILE, MediaStore.Video.Thumbnails.MICRO_KIND);

        String path = MediaStore.Images.Media.insertImage(getContentResolver(), bMap, "Title", null);
        Uri Uri1= Uri.parse(path);
       // ContentResolver crThumb = getContentResolver();

        //Bitmap bitmap =MediaStore.Video.Thumbnails.getThumbnail(crThumb, Long.parseLong(helper.KEY_FILE),MediaStore.Video.Thumbnails.MICRO_KIND,null);

        String [] fromFieldNames=new String[]{helper.KEY_NAME, String.valueOf(Uri1)};


        int[] toViewID= new int[]{R.id.title,R.id.list_video};
        SimpleCursorAdapter myadaptor= new SimpleCursorAdapter(this, R.layout.list_row, cursor,fromFieldNames,toViewID );
        ListView mylist= (ListView)findViewById(R.id.list);
        mylist.setAdapter(myadaptor);
FATAL EXCEPTION: main
                                                                              Process: com.example.sanya.ar_expeditor, PID: 2675
                                                                              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sanya.ar_expeditor/com.example.sanya.ar_expeditor.NewsFeed_Viewoverlay}: java.lang.NullPointerException: uriString
                                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
                                                                                  at android.app.ActivityThread.access$800(ActivityThread.java:156)
                                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                  at android.os.Looper.loop(Looper.java:211)
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5371)
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
                                                                               Caused by: java.lang.NullPointerException: uriString
                                                                                  at android.net.Uri$StringUri.<init>(Uri.java:475)
                                                                                  at android.net.Uri$StringUri.<init>(Uri.java:465)
                                                                                  at android.net.Uri.parse(Uri.java:437)
                                                                                  at com.example.sanya.ar_expeditor.NewsFeed_Viewoverlay.onCreate(NewsFeed_Viewoverlay.java:48)
                                                                                  at android.app.Activity.performCreate(Activity.java:5990)
                                                                                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
                                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) 
                                                                                  at android.app.ActivityThread.access$800(ActivityThread.java:156) 
                                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351) 
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                  at android.os.Looper.loop(Looper.java:211) 
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5371) 
                                                                                  at java.lang.reflect.Method.invoke(Native Method) 
                                                                                  at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945) 
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740) 
------------------------------LOGCAT----------------------------

public Cursor getCursor()
{
    String where=null;
    db= this.getReadableDatabase();
    //db.rawQuery("select image , name from images",null);
    //Cursor cursor = db.rawQuery("select _id, name from images",null);
    Cursor cursor= db.query(true,TABLE_Images,KEY,where,null,null,null,null,null,null);
    if (cursor!=null)
    {
        cursor.moveToFirst();

    }
    return cursor;
Cursor cursor = helper.getCursor();
        startManagingCursor(cursor);
        //setup for MApping in view fields
        Uri myUri= Uri.parse(helper.KEY_IMAGE);
      // Uri Uri1=  MediaStore.Video.Thumbnails.getContentUri(helper.KEY_FILE);
       Bitmap bMap = ThumbnailUtils.createVideoThumbnail(helper.KEY_FILE, MediaStore.Video.Thumbnails.MICRO_KIND);

        String path = MediaStore.Images.Media.insertImage(getContentResolver(), bMap, "Title", null);
        Uri Uri1= Uri.parse(path);
       // ContentResolver crThumb = getContentResolver();

        //Bitmap bitmap =MediaStore.Video.Thumbnails.getThumbnail(crThumb, Long.parseLong(helper.KEY_FILE),MediaStore.Video.Thumbnails.MICRO_KIND,null);

        String [] fromFieldNames=new String[]{helper.KEY_NAME, String.valueOf(Uri1)};


        int[] toViewID= new int[]{R.id.title,R.id.list_video};
        SimpleCursorAdapter myadaptor= new SimpleCursorAdapter(this, R.layout.list_row, cursor,fromFieldNames,toViewID );
        ListView mylist= (ListView)findViewById(R.id.list);
        mylist.setAdapter(myadaptor);
FATAL EXCEPTION: main
                                                                              Process: com.example.sanya.ar_expeditor, PID: 2675
                                                                              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sanya.ar_expeditor/com.example.sanya.ar_expeditor.NewsFeed_Viewoverlay}: java.lang.NullPointerException: uriString
                                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
                                                                                  at android.app.ActivityThread.access$800(ActivityThread.java:156)
                                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                  at android.os.Looper.loop(Looper.java:211)
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5371)
                                                                                  at java.lang.reflect.Method.invoke(Native Method)
                                                                                  at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
                                                                               Caused by: java.lang.NullPointerException: uriString
                                                                                  at android.net.Uri$StringUri.<init>(Uri.java:475)
                                                                                  at android.net.Uri$StringUri.<init>(Uri.java:465)
                                                                                  at android.net.Uri.parse(Uri.java:437)
                                                                                  at com.example.sanya.ar_expeditor.NewsFeed_Viewoverlay.onCreate(NewsFeed_Viewoverlay.java:48)
                                                                                  at android.app.Activity.performCreate(Activity.java:5990)
                                                                                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
                                                                                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) 
                                                                                  at android.app.ActivityThread.access$800(ActivityThread.java:156) 
                                                                                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351) 
                                                                                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                  at android.os.Looper.loop(Looper.java:211) 
                                                                                  at android.app.ActivityThread.main(ActivityThread.java:5371) 
                                                                                  at java.lang.reflect.Method.invoke(Native Method) 
                                                                                  at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945) 
                                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740) 
致命异常:main
流程:com.example.sania.ar_expeditor,PID:2675
java.lang.RuntimeException:无法启动activity ComponentInfo{com.example.sania.ar_expeditor/com.example.sania.ar_expeditor.NewsFeed_Viewoverlay}:java.lang.NullPointerException:URI字符串
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
在android.app.ActivityThread.access$800(ActivityThread.java:156)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:211)
位于android.app.ActivityThread.main(ActivityThread.java:5371)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:945)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
原因:java.lang.NullPointerException:uriString
在android.net.Uri$StringUri。(Uri.java:475)
在android.net.Uri$StringUri。(Uri.java:465)
位于android.net.Uri.parse(Uri.java:437)
位于com.example.sania.ar_expeditor.NewsFeed_Viewoverlay.onCreate(NewsFeed_Viewoverlay.java:48)
位于android.app.Activity.performCreate(Activity.java:5990)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
在android.app.ActivityThread.access$800(ActivityThread.java:156)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:211)
位于android.app.ActivityThread.main(ActivityThread.java:5371)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:945)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
也许这是我将视频uri转换成缩略图的方式,但无论哪种方式都是相同的错误。。我遵循了以下链接,有人知道我到底做错了什么吗?如何纠正。。???谢谢

这些缩略图存放在哪里?您是否在数据库中存储缩略图的Uri?@pskink我没有存储缩略图,因为我只是从数据库中获取视频的Uri,然后将其转换为缩略图以显示在图像视图的列表中。
我正在尝试获取存储在数据库中的视频缩略图…
那么什么是真的,什么是假的?什么是
DatabaseUtils#dumpCursor