2016-09-12 2 views
1

Я делаю приложение для Android, которое делит изображения через социальные сети. Изображения находятся в макете , поэтому, когда пользователь нажимает изображение, он открывает еще одно действие, которое покажет это конкретное изображение (которое теперь можно использовать совместно). Изображения сохраняются в папке с возможностью выгрузки. Я хочу, чтобы изображение, которое я разделяю, было другим (less - 32px) чем тот, который пользователь просматривает в своей отдельной деятельности, которая больше (172px).Показать большое изображение, но поделиться меньшим изображением в android

Вот активность, в которой вы просматриваете полное изображение в:

public class FullImage extends AppCompatActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.full_image); 

     Intent i = getIntent(); 

     int position = i.getExtras().getInt("id"); 
     ImageAdapter imageAdapter = new ImageAdapter(this); 

     ImageView imageView = (ImageView) findViewById(R.id.full_image_view); 
     imageView.setImageResource(imageAdapter.mThumbIds[position]); 

    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 

    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     OutputStream output; 

     ImageView image = (ImageView) findViewById(R.id.full_image_view); 
     Bitmap bitmap = ((BitmapDrawable) image.getDrawable()).getBitmap(); 

     File dir = new File(Environment.getExternalStorageDirectory() + "/images"); 

     dir.mkdirs(); 

     File file = new File(dir, "images.png"); 

     try { 
      verifyStoragePermissions(this); 
      output = new FileOutputStream(file); 

      bitmap.compress(Bitmap.CompressFormat.PNG, 100, output); 
      output.flush(); 
      output.close(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     switch (item.getItemId()) { 
      case R.id.action_share: 
       Uri uri = Uri.fromFile(file); 
       Intent shareIntent = new Intent(); 
       shareIntent.setAction(Intent.ACTION_SEND); 
       shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
       shareIntent.setType("image/png"); 
       startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.action_share))); 

      case android.R.id.home: 
       onBackPressed(); 
       return true; 
     } 
     return true; 

    } 

    // Storage Permissions 
    private static final int REQUEST_EXTERNAL_STORAGE = 1; 
    private static String[] PERMISSIONS_STORAGE = { 
      Manifest.permission.READ_EXTERNAL_STORAGE, 
      Manifest.permission.WRITE_EXTERNAL_STORAGE 
    }; 

    public static void verifyStoragePermissions(Activity activity) { 
     // Check if we have write permission 
     int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); 

     if (permission != PackageManager.PERMISSION_GRANTED) { 
      // We don't have permission so prompt the user 
      ActivityCompat.requestPermissions(
        activity, 
        PERMISSIONS_STORAGE, 
        REQUEST_EXTERNAL_STORAGE 
      ); 
     } 
    } 
} 
+2

Использование Bitmap.createScaledBitmap для создания различных размеров растрового изображения с оригинала: https://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap(android.graphics.Bitmap, внутр , int, boolean) –

+0

Вы можете извлечь миниатюру с основного изображения, которое будет меньше по размеру и ниже в разрешении –

ответ

1

Вы можете масштабировать растровое изображение до магазина, или сохранить второе уменьшенное изображение.

int PIXELS = 32; 
... 
bitmap = bitmap.createScaledBitmap(bitmap, PIXELS , PIXELS , true)); 
bitmap.compress(Bitmap.CompressFormat.PNG, 100, output); 
+0

Спасибо @adalPaRi .... работал как шарм –

 Смежные вопросы

  • Нет связанных вопросов^_^