2013-06-20 7 views
6

これは私のコードです。キャプションに画像を追加したい。私を助けてください。どのようにアンドロイドの図表に画像共有のキャプションを追加するには?

private void shareInstagram(Uri uri){ 

    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
    shareIntent.setType("image/*"); // set mime type 
    shareIntent.putExtra(Intent.EXTRA_STREAM,uri); // set uri 
    shareIntent.putExtra(Intent.EXTRA_TITLE, "Sample title"); 

    shareIntent.setPackage("com.instagram.android"); 

    startActivity(shareIntent); 
      } 

答えて

0

あなたは画像にキャプションを書き、uriを作成する必要があります。

private Bitmap writeTextOnDrawable(int drawableId, String text) { 

     Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId) 
       .copy(Bitmap.Config.ARGB_8888, true); 

     Typeface tf = Typeface.create("Helvetica", Typeface.BOLD); 

     Paint paint = new Paint(); 
     paint.setStyle(Style.FILL); 
     paint.setColor(Color.WHITE); 
     paint.setTypeface(tf); 
     paint.setTextAlign(Align.CENTER); 
     paint.setTextSize(convertToPixels(mContext, 11)); 

     Rect textRect = new Rect(); 
     paint.getTextBounds(text, 0, text.length(), textRect); 

     Canvas canvas = new Canvas(bm); 

     //If the text is bigger than the canvas , reduce the font size 
     if(textRect.width() >= (canvas.getWidth() - 4))  //the padding on either sides is considered as 4, so as to appropriately fit in the text 
      paint.setTextSize(convertToPixels(mContext, 7));  //Scaling needs to be used for different dpi's 

     //Calculate the positions 
     int xPos = (canvas.getWidth()/2) - 2;  //-2 is for regulating the x position offset 

     //"- ((paint.descent() + paint.ascent())/2)" is the distance from the baseline to the center. 
     int yPos = (int) ((canvas.getHeight()/2) - ((paint.descent() + paint.ascent())/2)) ; 

     canvas.drawText(text, xPos, yPos, paint); 

     BitmapDrawable bmd = new BitmapDrawable(getResources(), bm); 
    Bitmap newbit; 
               newbit=bmd.getBitmap(); 
return newbit; 
    } 
    public static int convertToPixels(Context context, int nDP) 
    { 
     final float conversionScale = context.getResources().getDisplayMetrics().density; 

     return (int) ((nDP * conversionScale) + 0.5f) ; 

    } 

REF:Add text to image in android programmatically


保存ビットマップファイルへ:

Uri.fromFile(new File(<your image absolute path>)); 

Save bitmap to file function


ファイルからURIを作成します


その後

private void shareInstagram(Uri uri){ 

    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
    shareIntent.setType("image/*"); // set mime type 
    shareIntent.putExtra(Intent.EXTRA_STREAM,uri); // set uri 
    shareIntent.putExtra(Intent.EXTRA_TITLE, "Sample title"); 

    shareIntent.setPackage("com.instagram.android"); 

    startActivity(shareIntent); 
      } 

はそれが

+0

Kalpeshを動作するはずホープあなたの関数にこのURIを渡す:それはキャプションを追加するために動作していますか? – akshay

+0

画像に字幕を埋め込むことは悪い解決策です。 Instagramはキャプションを使用しませんか? – Diederik

関連する問題