2016-06-21 7 views
-2

私はこのブログポストからエフェクトファクトリーチュートリアルに従っています:http://grishma102.blogspot.in/2013/10/apply-effects-on-image-using-effects.html 上記のポストdrawableは静的で、drawableリソースから選択されています。デバイスギャラリーからリソースを選択して適用したいその効果、それを達成するために私は上記のブログのポストコードでどのような変更を行う必要があります。ギャラリーから画像を選んでエフェクトファクトリーエフェクトを適用する

答えて

0

グローバル変数

private int OPEN_GALLERY = 101

を作成し、この

などのギャラリーから画像を選択する意図を作成]ボタンか何かのクリックで以下の意図を呼び出します。

Intent intent = new Intent(
             Intent.ACTION_PICK, 
             android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
           intent.setType("image/*"); 
           startActivityForResult(
             Intent.createChooser(intent, "Select Picture"), 
             OPEN_GALLERY); 

は、私はギャラリーからビットマップを取得することができた。この

private void loadTextures(Bitmap bm) { 
// Generate textures 
GLES20.glGenTextures(2, mTextures, 0); 
// Load input bitmap 
Bitmap bitmap = bm; 
mImageWidth = bitmap.getWidth(); 
mImageHeight = bitmap.getHeight(); 
mTexRenderer.updateTextureSize(mImageWidth, mImageHeight); 
// Upload to texture 
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextures[0]); 
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0); 
// Set texture parameters 
GLToolbox.initTexParams(); 
} 
+0

ようloadTextures()方法にonActivityResult()

@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case OPEN_GALLERY: if (data != null) { try { Uri selectedImage = data.getData(); String[] filePath = {MediaStore.Images.Media.DATA}; Cursor c = getApplicationContext().getContentResolver().query( selectedImage, filePath, null, null, null); c.moveToFirst(); int columnIndex = c.getColumnIndex(filePath[0]); String picturePath = c.getString(columnIndex); c.close(); BitmapFactory.Options options = new BitmapFactory.Options(); Bitmap bm = BitmapFactory.decodeFile(picturePath,options); //Pass bitmap to loadtextures method loadTextures(bm); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } break; } } } 

パスビットマップを使用して、選択した画像を取得し、それの後にすることができませんでしたビットマップをブログ投稿コードに設定します。 –

+0

申し訳ありません私はGLSurfaceViewを使用していることに気付かなかった。私の答えを編集しました。これをチェックしてください。 'onActivityResult()'メソッドで 'loadTextures(bm)'を呼び出します。 – SripadRaj

+0

私はしましたが、ビットマップをレンダリングしません。 –

関連する問題