activity 里的
HttpUtil.sendOkHttpRequest(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
Gson gson = new Gson();
final ContentJson content = gson.fromJson(string,ContentJson.class);
final Spanned spanned = Html.fromHtml(content.getBody(),new UrlImageGetter(NewsActivity.this),null);
runOnUiThread(new Runnable() {
@Override
public void run() {
newsText.setText(spanned);
}
});
}
});
两个工具类
package com.example.zsbenweather.util;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.text.Html;
import androidx.appcompat.widget.DrawableUtils;
import com.example.zsbenweather.gson.ContentJson;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class UrlImageGetter implements Html.ImageGetter {
Context mContext;
public UrlImageGetter(Context context){
mContext=context;
}
@Override
public Drawable getDrawable(String source) {
try{
//请求获取图片
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url(source).build();
Call call = client.newCall(request);
Response response = call.execute();
//加载图片
Bitmap bitmap = BitmapFactory.decodeStream(response.body().byteStream());
Drawable drawable = new BitmapDrawable(bitmap);
//调整图片大小
DrawableUtil drawableUtil = new DrawableUtil(mContext);
drawable = drawableUtil.utils(drawable);
return drawable;
}catch (IOException e){
e.printStackTrace();
}
return null;
}
}
package com.example.zsbenweather.util;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.DisplayMetrics;
import android.view.Display;
public class DrawableUtil {
Context mContext;
public DrawableUtil(Context context){
mContext = context;
}
public Drawable utils(Drawable drawable){
DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;
int draWidth = drawable.getIntrinsicWidth();
int draHeight = drawable.getIntrinsicHeight();
int resWidth = draWidth,resHeight = draHeight;
if(draWidth<width && draHeight<height){
resWidth = (int) (draWidth*2.5);
resHeight = (int) (draHeight*2.5);
}else if (draHeight > width || draHeight > height){
int value = draWidth/width;
resWidth = draWidth/value;
resHeight = draHeight/value;
}
drawable.setBounds(0,0,resWidth,resHeight);
return drawable;
}
}