2015-06-21 81 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

是否有这样的原因? –