2015-06-21 82 views
2

我從HTML中使用ImageGetter獲取圖像(代碼在計算器上找到),但提取的圖片太小,左對齊,我想無論是中心對齊這些圖像或使他們的寬度以匹配父項。有沒有辦法做到這一點?更改圖像寬度在ImageGetter的Android match_parent或中心圖像

URLImageParser:

public class URLImageParser implements Html.ImageGetter { 
Context c; 
TextView container; 

/*** 
* Construct the URLImageParser which will execute AsyncTask and refresh the container 
* @param t 
* @param c 
*/ 
public URLImageParser(TextView t, Context c) { 
this.c = c; 
this.container = t; 
} 

public Drawable getDrawable(String source) { 
URLDrawable urlDrawable = new URLDrawable(); 

// get the actual source 
ImageGetterAsyncTask asyncTask = 
    new ImageGetterAsyncTask(urlDrawable); 

asyncTask.execute(source); 

// return reference to URLDrawable where I will change with actual image from 
// the src tag 
return urlDrawable; 
} 

public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable>  { 
URLDrawable urlDrawable; 

public ImageGetterAsyncTask(URLDrawable d) { 
    this.urlDrawable = d; 
} 

@Override 
protected Drawable doInBackground(String... params) { 
    String source = params[0]; 
    return fetchDrawable(source); 
} 

@Override 
protected void onPostExecute(Drawable result) { 
// set the correct bound according to the result from HTTP call 
Log.d("height",""+result.getIntrinsicHeight()); 
Log.d("width",""+result.getIntrinsicWidth()); 
urlDrawable.setBounds(0, 0, 0+result.getIntrinsicWidth(), 0+result.getIntrinsicHeight()); 

// change the reference of the current drawable to the result 
// from the HTTP call 
urlDrawable.drawable = result; 

// redraw the image by invalidating the container 
URLImageParser.this.container.invalidate(); 

// For ICS 
    URLImageParser.this.container.setHeight((URLImageParser.this.container.getHeight() 
+ result.getIntrinsicHeight())); 

// Pre ICS 
URLImageParser.this.container.setEllipsize(null); 
} 

/*** 
* Get the Drawable from URL 
* @param urlString 
* @return 
*/ 
public Drawable fetchDrawable(String urlString) { 
    try { 
     URL aURL = new URL(urlString); 
     final URLConnection conn = aURL.openConnection(); 
     conn.connect(); 
     final BufferedInputStream bis = new BufferedInputStream(conn.getInputStream()); 
     final Bitmap bm = BitmapFactory.decodeStream(bis); 
     Drawable drawable = new BitmapDrawable(bm); 
     drawable.setBounds(0,0,bm.getWidth(),bm.getHeight()); 
     return drawable; 
    } catch (Exception e) { 
     return null; 
    } 
    } 
    } 
+0

任何新的東西..? –

回答

0

如果要居中您使用android:scaleType="centerInside"的ImageView的內部圖像。

如果要縮放ImageView中的圖像,以便最小的一面與ImageView的大小相匹配,請使用android:scaleType="centerCrop"

更多ScaleTpzes看看: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

+0

它在文本視圖中的圖像不在圖像視圖中... – Darpan

+0

是否有這樣的原因? –