Ich habe TextView (mTextOnImage
) und ImageView (mImageView
).
Ich kombiniere sie mit der Funktion combineImages
, aber wenn ich kombiniere, wird die Textgröße geändert.Android: Textgröße geändert, während die Kombination von Text und Bild
//generate bitmap of textView by using getDrawingCache()
Bitmap bmp = Bitmap.createBitmap(mTextOnImage.getDrawingCache());
//getting image as bitmap from image view (to use as background to combine)
BitmapDrawable drawable = (BitmapDrawable) mImageView.getDrawable();
Bitmap bitmapBackground = drawable.getBitmap();
//combining two bitmaps
Bitmap combined = combineImages(bitmapBackground, bmp);
Dies ist combineImages
Funktion
public Bitmap combineImages(Bitmap background, Bitmap foreground) {
Bitmap cs;
cs = Bitmap.createBitmap(background.getWidth(), background.getHeight(), Bitmap.Config.ARGB_8888);
//creating canvas by background image's width and height
Canvas comboImage = new Canvas(cs);
background = Bitmap.createScaledBitmap(background, background.getWidth(), background.getHeight(), true);
//Drawing background to canvas
comboImage.drawBitmap(background, 0, 0, null);
//Drawing foreground (text) to canvas
comboImage.drawBitmap(foreground, mTextOnImage.getLeft(),mTextOnImage.getTop(), null);
return cs;
}
Bitmap erfolgreich kombiniert, aber die Textgröße geändert wird. Dies ist
, wie ich Textgröße
mTextOnImage.setTextSize(getResources().getDimensionPixelSize(R.dimen.myFontSize));
In String-Ressource gesetzt
<resources>
<dimen name="myFontSize">40sp</dimen>
</resources>
ich das Hintergrundbild von dem Gerät Galerie erhalten, so dass die Auflösung (Bilddimension) unterschiedlich sein kann.
Gibt es irgendeine Berechnung, die ich verpasst habe?
Zusätzlich, TextView (mTextOnImage
) ist ziehbar, also möchte ich auch die Position richtig auf die Kombination dieser beiden setzen.
https://stackoverflow.com/questions/3176033/spannablestring-with-image-example –
@Nilu, Vielleicht ist dieses Beispiel, um ein Bild in 'text String' einzufügen.Aber was ich brauche, ist Text und Bild wie ** Overlay ** zu kombinieren. gefällt das [Bild] (https://i.pinimg.com/736x/80/76/d3/8076d33b2194237f8ef486a22b6246f2--quotes-from-albert-einstein-make-mistakes.jpg) – zey
Haben Sie versucht 'comboImage.drawBitmap (Hintergrund, neue Matrix(), null) '? – azizbekian