2017-02-27 2 views
0

私がやろうとしています:イメージのロード

fun getBitmap(uri: String?) { 
    val imagePipeline = Fresco.getImagePipeline() 
    val builder = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(File(uri))) 
    val request = builder.build() 
    val dataSource = imagePipeline.fetchDecodedImage(request, this) 
    try { 
     dataSource.subscribe(object : BaseBitmapDataSubscriber() { 
      override fun onFailureImpl(dataSource: DataSource<CloseableReference<CloseableImage>>?) { 
       Log.d("loadBackground", "fail") 
      } 

      override fun onNewResultImpl(bitmap: Bitmap?) { 
       activity_levels.background = BitmapDrawable(resources, bitmap) 
      } 

      }, DefaultExecutorSupplier(1).forBackgroundTasks()) 
     } finally { 
      dataSource?.close() 
     } 
    } 

これはURIです:

uri = "${directory.absolutePath}/background.jpg" 

私は常にエラーjava.lang.IllegalArgumentExceptionが持つメソッドonFailureImplに入ります:サポートされていないURIスキーム!ウリは...

内部のストレージから画像をアップロードするには?

答えて

0

あなたはちょうどあなたが(あなたが行うように)直接ビットマップを使用している場合は、あなたがCloseableReferenceを保持し、管理する必要があなたのイメージ要求

を取得するために

ImageRequest request = ImageRequest.fromFile(yourFile) 

を使用することができますデータのライフサイクルは、http://frescolib.org/docs/writing-custom-views.html

関連する問題