Android - อยากจะ ปรับขนาดของรูปปภาพ Resize Image หรือ กำหนดขนาดรุแ ก่อนแสดงน่ะครับ แนะนำหน่อยครับ
พอดีผมดึงค่า พาธ จาก Activity หนึ่ง แล้วส่งค่า Path มายัง Activity นี้ แล้วนำมาแสดงเป็นรุป แต่รูปภาพมันขนาดใหญ่ อยากจะกำหนด มีฟังชั่นตัวไหน ชช่วยได้มั้ยครับ จากโค้ทนี้
Code (Android-Java)
package com.technotalkative.viewstubdemo;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.media.Image;
import android.os.Bundle;
import android.provider.MediaStore.Images;
import android.util.Log;
import android.widget.ImageView;
import android.widget.TextView;
public class Activity_Detail extends DashBoardActivity{
TextView Store_details,Store_names,Store_types;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_store);
setHeader(getString(R.string.NearbyActivityTitle), true, true);
Intent intent = getIntent();
final String Storename = intent.getStringExtra("nameStore");
Log.i("Detail name",""+Storename);
final String URLImage = intent.getStringExtra("nameImage");
Log.i("Detail IMG ",""+URLImage);
final String nameType = intent.getStringExtra("nameType");
Log.i("nameType",""+nameType);
final String store_detail = getIntent().getExtras().getString("store_detail");
Log.i("store_detail",""+store_detail);
Store_details = (TextView)findViewById(R.id.textDetail);
Store_names = (TextView)findViewById(R.id.textName);
Store_types = (TextView)findViewById(R.id.textCatagory);
Store_details.setText("" + store_detail);
Store_names.setText("" + Storename);
Store_types.setText("" + nameType);
ImageView storeImg = (ImageView)findViewById(R.id.imageStore1);
storeImg.setImageBitmap(fetchImage( URLImage ));
}
////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
public Bitmap fetchImage( String URLImage )
{
try
{
URL url = new URL( URLImage.trim() ); // imageUrl คือ url ของรูปภาพ
InputStream input = null;
URLConnection conn = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection)conn;
httpConn.setRequestMethod("GET");
httpConn.setReadTimeout(40000); // ตั้งเวลา connect timeout
httpConn.connect(); // connection
if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
input = httpConn.getInputStream(); // จับใส่ InputStream
}
Bitmap bitmap = BitmapFactory.decodeStream(input); //แปลงเป็น Bitmap
input.close();
httpConn.disconnect();
return bitmap;
}
catch ( MalformedURLException e ){
Log.d("fetchImage",
"MalformedURLException invalid URL: " + URLImage );
}catch ( IOException e ){
Log.d("fetchImage","IO exception: " + e);
}catch(Exception e){
Log.d("fetchImage","Exception: " + e);
}
return null;
}
}
นี่รูปครับ
ขอบคุณครับTag : Mobile, MySQL, Android
Date :
2014-03-23 23:59:10
By :
Odinamilk
View :
3538
Reply :
6
Code (Android-Java)
imgView.getLayoutParams().height = 20;
imgView.getLayoutParams().width= 20;
Date :
2014-03-24 09:16:14
By :
mr.win
จำหัดขนาดได้ละครับ แต่เวลาเราโหลดข้อมูลรูปภาพจาก Server ภาพมันมีขนาดใหญ่ มันโหลดช้ามากเลยครับ
เราจะมีวิธีไหนมั้ยครับ หรือว่าต้องไปแก้ขนาดรูปบน host เท่านั้นครับ ขอบคุณครับ
Date :
2014-03-24 11:13:16
By :
Odinamilk
ผมคิดว่าจะเขียน คำสั่งที่ php ให้ เวลาเราอัพโหลดรูปขึ้นไป แยกเป็น 2 ฟิล ฟิลนึงรูปใหญ่ ฟิลนึงรูปเล็กเอาครับ แล้วทำการ รีไซด์รูป ก่อนขึ้น host เอา คิดว่าไงครับ
Date :
2014-03-24 11:42:28
By :
Odinamilk
Resize รุปเอาครับ
PHP Resize image
Date :
2014-03-24 12:13:23
By :
mr.win
การโหลดภาพขนาดใหญ่ๆ bitmap และ progressbar ช่วยได้ครับ
Date :
2014-03-27 01:03:33
By :
tutordroid.com
Code (Android-Java)
public static Bitmap resizeImage(File f,int WIDTH,int HIGHT){
try {
//Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f),null,o);
//The new size we want to scale to
final int REQUIRED_WIDTH=WIDTH;
final int REQUIRED_HIGHT=HIGHT;
//Find the correct scale value. It should be the power of 2.
int scale=1;
while(o.outWidth/scale/2>=REQUIRED_WIDTH && o.outHeight/scale/2>=REQUIRED_HIGHT)
scale*=2;
//Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {}
return null;
}
Code (Android-Java)
Bitmap bm = decodeFile(new File("/sdcard/image.jpg"),100,100);
Date :
2015-11-08 16:02:13
By :
mr.win
Load balance : Server 03