2012-03-06 9 views
5

नीचे दिया गया कोड बिटमैप का आकार बदलता है और पहलू अनुपात को रखता है। मैं सोच रहा था कि आकार बदलने का एक और अधिक प्रभावी तरीका है, क्योंकि मुझे यह विचार आया कि मैं कोड लिख रहा हूं जो पहले से ही एंड्रॉइड एपीआई में उपलब्ध है।बिटमैप का आकार बदलना

private Bitmap resizeImage(Bitmap bitmap, int newSize){ 
    int width = bitmap.getWidth(); 
    int height = bitmap.getHeight(); 

    int newWidth = 0; 
    int newHeight = 0; 

    if(width > height){ 
     newWidth = newSize; 
     newHeight = (newSize * height)/width; 
    } else if(width < height){ 
     newHeight = newSize; 
     newWidth = (newSize * width)/height; 
    } else if (width == height){ 
     newHeight = newSize; 
     newWidth = newSize; 
    } 

    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 

    Matrix matrix = new Matrix(); 
    matrix.postScale(scaleWidth, scaleHeight); 

    Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, 
      width, height, matrix, true); 

    return resizedBitmap; 
} 

उत्तर

0

मैं वास्तव में ऐसा नहीं लगता, मैं लगभग एक ही तरीका है कि आप के रूप में किया है, और Android डेवलपर पृष्ठों से विचार ...

0

कैसे आप छवि का उपयोग कर रहे पर निर्भर करता है मिल गया । यदि आप बस एक दृश्य में बिटमैप प्रदर्शित करना चाहते हैं, तो बस myImageView.setImageBitmap(bitmap) पर कॉल करें और ढांचे को आकार देने दें। लेकिन अगर आप स्मृति के बारे में चिंतित हैं, तो पहले स्केलिंग एक अच्छा दृष्टिकोण हो सकता है।