Wir versuchen, eine App zu erstellen, die es dem Benutzer ermöglicht, ein Bild hochzuladen, Text darüber zu schreiben und dann das neue Bild mit dem Text zu speichern.Wie kann ich ein Bild mit Text in der Galerie in Android Studio überlagern?
Unsere aktuelle Implementierung besteht darin, ein ImageView zu verwenden, um das Bild zu halten, und dann TextViews zu verwenden, um darüber zu schreiben.
Was wäre der beste Weg, um das Bild als Ganzes zu speichern? Unten ist unser aktueller Code.
Danke für die Hilfe! :)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_generator);
final EditText topTextInput = (EditText)findViewById(R.id.editTopText);
final EditText bottomTextInput = (EditText)findViewById(R.id.editBottomText);
final TextView topTextView = (TextView)findViewById(R.id.topText);
final TextView bottomTextView = (TextView)findViewById(R.id.bottomText);
imageView = (ImageView)findViewById(R.id.imageView2);
Button pickImage = (Button) findViewById(R.id.button2);
pickImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_PHOTO);
}
});
topTextInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
topTextView.setText(topTextInput.getText() + "");
}
@Override
public void afterTextChanged(Editable editable) {
}
});
bottomTextInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
bottomTextView.setText(bottomTextInput.getText() + "");
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode) {
case SELECT_PHOTO:
if(resultCode == RESULT_OK){
try {
final Uri imageUri = imageReturnedIntent.getData();
final InputStream imageStream = getContentResolver().openInputStream(imageUri);
final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
imageView.setImageBitmap(selectedImage);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
Diese Frage wurde bereits gestellt und beantwortet [hier] (https: // Stackoverflow .com/questions/2174875/Bild-auf-Leinwand-zu-JPEG-Datei). –
Ja, vor 6 Jahren ... komplett veraltet. –