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