2016-04-01 4 views
1

Facebook上でテキストを共有したいと思います。しかし、私は自分のテキストがそれの後ろにいくつかのフレームを持つべきであると思います。テキストビューからテキストを取り出し、drawableから画像に貼り付けます。

画像にテキストを設定して共有するにはどうすればよいですか?

+0

このスレッドは異なるトピックですが、描画可能な処理に簡単なテキストを説明しています。http://stackoverflow.com/questions/4318572/how-to-use-a-custom-typeface-in-a-widget – nurisezgin

答えて

1

まあをFacebookへ投稿このビットマップを共有することができます。

public class MyImageTextView extends View { 
    String textOnImage; 
    Bitmap bitmapBackground; 

    public MyImageTextView(Context context) { 
     super(context); 
     init(); 
    } 

    public MyImageTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 


    public MyImageTextView(Context context, AttributeSet attrs, int defStyleAttr) 
    { 
     super(context, attrs, defStyleAttr); 
     init(); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     // TODO Auto-generated method stub 
     super.onDraw(canvas); 

     int centerx = getWidth()/2; 
     int centery = getHeight()/2; 

     canvas.drawBitmap(bitmapBackground, 0, 0, null); 
     drawText(canvas, centerx , centery , textOnImage) 
    } 

    public void drawText(Canvas canvas, float x, float y, String text) { 
     int consumedCalTextSize =  getResources().getDimensionPixelSize(R.dimen.food_circular_graph_text_size); 
     Paint canvasTextPaint = new Paint(); 
     canvasTextPaint.setAntiAlias(true); 
     canvasTextPaint.setARGB(255, 255, 255, 255); 
     canvasTextPaint.setTextSize(consumedCalTextSize); 
     canvasTextPaint.setTextAlign(Paint.Align.CENTER); 
     canvas.drawText(text, x, y, canvasTextPaint); 
    } 
} 

このカスタムコントロールを変更するにはフルアクセス権を持ち、XMLにも追加できます。 Androidのコントロールは本当に強力です。

+0

画像を描画したい場所に関するロジックは、コントロールの中心にあると思いますが、変更することもできます。 – Nanites

1

それ

android:background="@drawable/myResouce" 

またはあなたのコード内からのテキストビューと設定した背景を使用します。

mTextView.setBackgroundResource(R.drawable.myResouce); 
+0

OPがグリーティングを共有したいFacebookの壁のテキストの –

1

1つのレイアウトを作成し、必要な背景画像を設定し、そのレイアウト内のTextViewを持っていますテキストを設定します。

Javaコード内でこれを取得し、ビットマップに変換します。

FrameLayout view = (FrameLayout)findViewById(R.id.framelayout); 

view.setDrawingCacheEnabled(true); 

view.buildDrawingCache(); 

Bitmap bm = view.getDrawingCache(); 

そして、uはそれを行うための正しい方法はMyImageTextViewという名前のカスタムコントロールは、ビューを拡張して作成し、キャンバスを使用して、その上に画像やテキストを描画する方法をonDraw使用することです

関連する問題