2016-04-28 32 views
3

私はインスタントチャットアプリケーションに取り組んでいます。私はアクティビティ、つまりチャット、グループ、コンタクトで3つのタブを持っています。グループタブでは、BaseAdapter.Nowリストビューは画像を含むことができます。画像をクリックすると、フルスクリーンで表示したいのですが。私はImageViewのをクリックで次のコードを使用しています特殊なアダプタ内部画像をクリックするとフルスクリーンで表示されます

:ここでは「画像」を

//On clicking image,display the image in full screen 


imageView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(context, FullImageActivity.class); 
       intent.putExtra("image", image); 
       context.startActivity(intent);    
      } 
     }); 

は、画像のベース64の表現です。

FullImageActivity.java

public class FullImageActivity extends AppCompatActivity { 
    ImageView imgFullImage; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_full_image); 

     ///findViewBYID 
     imgFullImage = (ImageView) findViewById(R.id.fullImage); 

     Bundle bundle = getIntent().getExtras(); 
     String image = bundle.getString("image"); 
     Bitmap bitmap = decodeImage(image); 
     imgFullImage.setImageBitmap(bitmap); 
    }  

    private Bitmap decodeImage(String data) { 
     byte[] b = Base64.decode(data, Base64.DEFAULT); 
     Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length); 
     return bmp; 
    } 
} 

しかし、私はそれがFullIMageActivityに移動し、即座にそれを修正するために私を助けて戻っグループTab.Pleaseへ移動をクリックしてください.When私のために働いていません。

+0

のようにその画像上setOnClicklistnerを定義内部または外部ストレージにアクセスし、次のアクティビティへの経路をインテントで提供しますか? –

+0

ちょっとDeepakあなたはXMPPとAsmackのlibで作っていますか???? –

+0

@NikhilBorad:私はソケットを使用しています。私のアプリのioクライアントライブラリ。 –

答えて

1

あなたは間違ってそれをやっている、これはあなたの最初のアクティビティでは、それを

を行うことができる方法ですまず

imageView.buildDrawingCache(); 
Bitmap bitmap = imageView.getDrawingCache(); 

Intent intent = new Intent(this, NewActivity.class); 
intent.putExtra("BitmapImage", bitmap); 

と第二の活動に

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage"); 
をビットマップに ImageViewを変換します

次に、ビットマップをに表示します。

1

ここでBase64画像は大きなデータ列ですが、他のアクティビティにパスすることができますが、あなたの損失データやアプリケーションが負荷を増やす可能性があるため、悪い考えです。 1つのモデルクラスをストアのBase64文字列に作成して取得するために使用します。 どのようにですか?以下のコードを参照してください。

ModelBase64.java

class ModelBase64{ 
    public static String base64Image; 
} 

今割り当てる画像列base64Image

imageView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      ModelBase64.base64Image=image; 
      Intent intent = new Intent(context, FullImageActivity.class); 
      context.startActivity(intent);    
     } 
    }); 

は今、別のクラス

FullImageActivity.java

にretrive
public class FullImageActivity extends AppCompatActivity { 
ImageView imgFullImage; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_full_image); 

    ///findViewBYID 
    imgFullImage = (ImageView) findViewById(R.id.fullImage); 

    // Bundle bundle = getIntent().getExtras(); 
    //String image = bundle.getString("image"); 
    String image = ModelBase64.base64Image; 
    Bitmap bitmap = decodeImage(image); 
    imgFullImage.setImageBitmap(bitmap); 
}  

private Bitmap decodeImage(String data) { 
    byte[] b = Base64.decode(data, Base64.DEFAULT); 
    Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length); 
    return bmp; 
} 
} 
0

あなたにとって最適なソリューションは、ImageViewPopUpHelperです。 https://github.com/juliomarcos/ImageViewPopUpHelper

このURLからソースを取得し、クラス名を "ImageViewPopUpHelper"にします。あなたはクリックでポップアップ表示したい時はいつでも、その後、意図の一部は、このような素晴らしいアイデア:)なぜあなたはどこかで画像を保存いけないかもしれないとして、画像を渡す

profile_image.setOnClickListener(new View.OnClickListener() 
{ 
    @Override public void onClick(View v) { 
     ImageViewPopUpHelper.enablePopUpOnClick(activity, profile_image, profile_image.getDrawable()); 
    } 
}); 
+0

一部のコードを投稿して説明する必要があります。適切な方法でないコメントにリンクを投稿することができます –

+0

このURLからソースを取得し、クラス名を "ImageViewPopUpHelper"にします。その後、クリックしたときにポップアップが表示されるようにするには、profile_image.setOnClickListener(newView.OnClickListener(){ )のようにそのイメージでsetOnClicklistnerを定義します。 public void onClick(View v){ ImageViewPopUpHelper.enablePopUpOnClick(activity、profile_image、 profile_image.getDrawable()); } }); –

+0

兄さんは? –

関連する問題