java Android studio รบกวนถามพี่ๆหน่อยครับ เวลากดถ่ายรูปเสร็จ...

การสนทนาใน 'Android Developer' เริ่มโดย ปรัชญา จารุวณิชกุล, 14 มกราคม 2016

    java Android studio รบกวนถามพี่ๆหน่อยครับ เวลากดถ่ายรูปเสร็จ แล้วผมอยากให้รูปที่ถ่ายมันโชว์ใน Image View แต่ที่นี้ ผมใช้โค๊ดนี้ แล้วมันไม่มีไรเกิดขึ้นเลย ใน Method onActivityResult ผมทำการเรียกใช้งาน method setPic(); private void setPic() { // Get the dimensions of the View int targetW = imgShow.getWidth(); int targetH = imgShow.getHeight(); // Get the dimensions of the bitmap BitmapFactory.Options bmOptions = new BitmapFactory.Options(); bmOptions.inJustDecodeBounds = true; BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions); int photoW = bmOptions.outWidth; int photoH = bmOptions.outHeight; // Determine how much to scale down the image int scaleFactor = Math.min(photoW/targetW, photoH/targetH); // Decode the image file into a Bitmap sized to fill the View bmOptions.inJustDecodeBounds = false; bmOptions.inSampleSize = scaleFactor; Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions); imgShow.setImageBitmap(bitmap); }
    [​IMG]
     
  1. คำถามพี่โหดมากเลยครับ ลองไล่ดูไม่อยากเลย งดก๊อบโค้ดแป๊ะ ถ้าจะก๊อบก็ก๊อบทีละชุดคำสั่งว่า มันทำงานยังไง พี่เอามาแบบนี้เหมือน งมเข็มเลยคับ จะบอกว่าโค้ดต้นต่อพี่ก๊อบมาไม่ครบ เลยไม่รู้จะช่วยยางไง
     
    มันไม่ใช่ไม่มีไรเกิดขึ้น แต่คิดว่าเกิดจากการ Resize รูปเหลือ 0 * 0 px ลอง log ดู targetW และ targetH ครับ imgShow.getWidth(); มันต้องได้ 0 อยู่แล้ว เพราะมันยังไม่ทัน Measure . ต้องรอให้ view Measure ก่อนเช่นใช้ ViewTreeObserver ถึงจะ getWidth / H จาก view ได้ครับ
     

แบ่งปันหน้านี้