В настоящее время у меня есть несколько изображений (все 100x100 в размерности, очень маленькие), которые вытаскиваются из сервера MySQL MySQL и отображаются в моем приложении. Все работает и ведет себя так, как я хочу. Тем не менее, я заметил, что когда я делюсь изображениями с WhatsApp, Messenger или другими приложениями в социальных сетях (у меня есть кнопки в приложении, которые используют изображение), изображения взорваны, как будто они слишком малы для обмена, поэтому социальные медиа приложения изменяют их размеры, что отражает пиксели изображений, поскольку исходные размеры 100х100.Изменить размер изображения перед тем, как открыть (вставить холст)
Во избежание изменения размеров изображений у меня возникла идея, но не знаю, возможно ли это или как это сделать. Можно ли разместить исходное изображение на белом холсте размером 300x300 в размерах во время акции? Таким образом, изображение будет 300x300, но с белым фоном и, мы надеемся, будет правильно распределяться без изменения размера.
CardPreviewActivity
public class CardPreviewActivity extends AppCompatActivity {
BottomSheetLayout bottomSheetLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.preview_activity);
final SuperHero superHero = App.self.previewRequestedSuperHeroObject;
// SET IMAGE
ImageLoader imageLoader = CustomVolleyRequest.getInstance(this).getImageLoader();
NetworkImageView heroPreviewImg = (NetworkImageView) findViewById(R.id.imageViewHero);
heroPreviewImg.setImageUrl(superHero.getImageUrl(), imageLoader);
// SET NAME
TextView heroName = (TextView) findViewById(R.id.preview_super_hero_name);
heroName.setText("Name: " + superHero.getName());
// SET DIRECTLINK
TextView heroDirectLink = (TextView) findViewById(R.id.preview_super_hero_directlink);
heroDirectLink.setText("Direct link: " + superHero.getDirectLink());
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle(superHero.getName()); // set the top title
bottomSheetLayout = (BottomSheetLayout) findViewById(R.id.bottomsheet);
//SET SAVE SHARE BUTTON TEXT
TextView heroName2 = (TextView) findViewById(R.id.btn_custom_view);
heroName2.setText("Share " + superHero.getName());
}
<code>
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_custom_view:
bottomSheetLayout.showWithSheetView(getLayoutInflater().inflate(R.layout.bottomsheet, bottomSheetLayout, false));
break;
// case R.id.btn_save_face:
// break;
case R.id.btn_share_face:
ImageView imageView = (ImageView) findViewById(R.id.imageViewHero);
Drawable mDrawable = imageView.getDrawable();
Bitmap mBitmap = ((BitmapDrawable)mDrawable).getBitmap();
String path = MediaStore.Images.Media.insertImage(getContentResolver(),
mBitmap, "face", null);
Uri uri = Uri.parse(path);
final SuperHero superHero = App.self.previewRequestedSuperHeroObject;
String url = superHero.getImageUrl();
String name = superHero.getName();
final Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setType("image/*");
IntentPickerSheetView intentPickerSheetView = new IntentPickerSheetView(CardPreviewActivity.this, shareIntent, ("Share " + superHero.getName()), new IntentPickerSheetView.OnIntentPickedListener() {
@Override
public void onIntentPicked(IntentPickerSheetView.ActivityInfo activityInfo) {
bottomSheetLayout.dismissSheet();
startActivity(activityInfo.getConcreteIntent(shareIntent));
}
});
bottomSheetLayout.showWithSheetView(intentPickerSheetView);
break;
case R.id.btn_copy_direct_link:
final SuperHero superHero2 = App.self.previewRequestedSuperHeroObject;
ClipboardManager clipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("face direct link", superHero2.getDirectLink());
clipboard.setPrimaryClip(clip);
// Toast.makeText(getApplicationContext(), ("Copied " + superHero2.getName() + " URL to the clipboard"), Toast.LENGTH_SHORT).show();
bottomSheetLayout.dismissSheet();
Snackbar.make(view, "Copied " + superHero2.getName() + "'s URL to the clipboard", Snackbar.LENGTH_LONG)
.setAction("Action", null)
.show();
break;
case R.id.btn_copy_direct_link_with_tags:
final SuperHero superHero3 = App.self.previewRequestedSuperHeroObject;
ClipboardManager clipboard2 = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
ClipData clip2 = ClipData.newPlainText("face direct link with image tags", ("[img]" + superHero3.getDirectLink() + "[/img]"));
clipboard2.setPrimaryClip(clip2);
// Toast.makeText(getApplicationContext(), ("Copied " + superHero3.getName() + " URL to the clipboard with IMG tags"), Toast.LENGTH_SHORT).show();
bottomSheetLayout.dismissSheet();
Snackbar.make(view, "Copied " + superHero3.getName() + "'s URL to the clipboard with IMG tags", Snackbar.LENGTH_LONG)
.setAction("Action", null)
.show();
break;
}
}
//Add back button to go back
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
}
public boolean onSupportNavigateUp() {
finish();
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
return true;
}
}