/ / बिटमैप का आकार बदलना - एंड्रॉइड, एंड्रॉइड-व्यू में स्केलिंग के बजाय फसल है

बिटमैप का आकार बदलना - एंड्रॉइड, एंड्रॉइड-व्यू में स्केलिंग के बजाय फसल है

मैं यह नहीं समझ सकता कि बिटमैप का आकार कैसे बदलें। यहां पोस्ट के आधार पर बिटमैप.क्रेटस्केल्डबिटमैप ऐसा करने का तरीका है, लेकिन यह सिर्फ मेरे लिए काम नहीं करता है। दृश्य की प्रकृति के कारण मैं सब कुछ कर रहा हूं, इसलिए मुझे नहीं लगता कि मैं लेआउट या इमेज व्यू का उपयोग कर सकता हूं यहां "मैं क्या कर रहा हूं:

मेरे पास एम्पायर स्टेट बिल्डिंग की एक छवि है जो 200x200 है। मैं इसे सेट करने के लिए इस कोड को चलाता हूं:

    private void setupBitmap() {

int bitmapSize = 100;

Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empirestate_sm);
myBitmap = Bitmap.createScaledBitmap(originalBitmap, bitmapSize, bitmapSize, true);
}

यह मेरा ऑन ड्रा है:

    protected void onDraw(Canvas canvas) {
canvas.drawBitmap(myBitmap, 0, 0, null);
}

और यहां परिणाम है, ध्यान दें कि छवि सिर्फ फसल है और आकार बदल नहीं है:

यहां छवि विवरण दर्ज करें

बस एस एंड जी के लिए अगर मैं बिटमैप आकार = 200 सेट करता हूं तो ऐसा लगता है:

यहां छवि विवरण दर्ज करें

उत्तर:

जवाब के लिए 3 № 1

ठीक है, मैंने इसे समझ लिया है। मेरे लिए क्या काम करता है जब आप इसे बनाते हैं तो बिटमैप छोड़ना होता है। फिर जब आप इसे कैनवास पर खींचते हैं तो इसे सही आकार में सेट करें। मैं मान रहा हूँ कि createScaledBitmap फ़ंक्शन टूटा हुआ है ??

   myCanvas.drawBitmap (landmarkImg, null, new RectF((float)0,(float)0,newWidth,newHeight),null);

जवाब के लिए 0 № 2

आप एक छवि दृश्य का उपयोग करने का प्रयास कर सकते हैं:

ImageView iv = (ImageView) findViewById(R.id.imageview);

Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empirestate_sm);
myBitmap = Bitmap.createScaledBitmap(originalBitmap, bitmapSize, bitmapSize, true);

iv.setImageBitmap(myBitmap);