java设置imageview图片大小_java – 在android中设置imageview

我有一个JSON URL :: http://54.218.73.244:7006/DescriptionSortedRating/

JSON STRUCT ::

"restaurants": [

{

"restaurantID": 4,

"restaurantNAME": "CopperChimney1",

"restaurantIMAGE": "MarkBoulevard1.jpg",

"restaurantDISTANCE": 15,

"restaurantTYPE": "Indian",

"restaurantRATING": 1,

"restaurantPrice": 11,

"restaurantTime": "9am t0 8pm"

},

RestaurantDescPhotos.java

public class RestaurantDescPhotos extends Activity {

// url to make request

private static String url = "http://54.218.73.244:7006/DescriptionSortedRating/";

String restaurant_name, cc_res;

ProgressDialog progressDialog;

JSONObject jsonObject;

JSONArray first_array;

TextView textView;

TextView text;

private SparseArray imagesMap = new SparseArray();

ArrayList> list_of_images = new ArrayList>();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.restaurant_desc_photos);

progressDialog = new ProgressDialog(RestaurantDescPhotos.this);

new ParsingAsync().execute();

}

private class ParsingAsync extends AsyncTask {

@Override

protected void onPreExecute() {

super.onPreExecute();

progressDialog = ProgressDialog.show(RestaurantDescPhotos.this, "",

"Please Wait", true, false);

}

@Override

protected Void doInBackground(Void... params) {

// TODO Auto-generated method stub

String _response = null;

try {

HttpClient httpclient = new DefaultHttpClient();

httpclient.getParams().setParameter(

CoreProtocolPNames.PROTOCOL_VERSION,

HttpVersion.HTTP_1_1);

HttpGet request = new HttpGet(url);

HttpResponse response = httpclient.execute(request);

HttpEntity resEntity = response.getEntity();

_response = EntityUtils.toString(resEntity);

jsonObject = new JSONObject(_response);

first_array = jsonObject.getJSONArray("restaurants");

} catch (JSONException e) {

e.printStackTrace();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

@Override

protected void onPostExecute(Void result) {

// TODO Auto-generated method stub

super.onPostExecute(result);

progressDialog.dismiss();

// TextView timedisplay=(TextView)

// findViewById(R.id.RestaurantTimeID);

for (int i = 0; i < first_array.length(); i++) {

try {

JSONObject detail_obj = first_array.getJSONObject(i);

HashMap map_for_images = new HashMap();

int id = detail_obj.getInt("_id");

String IMAGES = detail_obj.getString("restaurantIMAGE");

map_for_images.put("Starters", IMAGES);

list_of_images.add(map_for_images);

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

ImageView imageView = (ImageView) findViewById(R.id.DISP_IMG);

}

}

}

RestaurantDescPhotos.xml

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/tableRow6"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:padding="2sp" >

android:layout_width="match_parent"

android:layout_height="40dp" >

android:layout_width="match_parent"

android:layout_height="60dp" >

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/DescriptionTitleRow"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:padding="2sp" >

android:id="@+id/horizontalScrollView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content" >

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="horizontal" >

android:id="@+id/DISP_IMG"

android:layout_width="167dp"

android:layout_height="167dp"

android:src="@drawable/ic_launcher" />

ImageLoader.java

public class ImageLoader {

MemoryCache memoryCache = new MemoryCache();

FileCache fileCache;

private Map imageViews = Collections

.synchronizedMap(new WeakHashMap());

ExecutorService executorService;

// Handler to display images in UI thread

Handler handler = new Handler();

public ImageLoader(Context context) {

fileCache = new FileCache(context);

executorService = Executors.newFixedThreadPool(5);

}

final int stub_id = R.drawable.temp_img;

public void DisplayImage(String url, ImageView imageView) {

imageViews.put(imageView, url);

Bitmap bitmap = memoryCache.get(url);

if (bitmap != null)

imageView.setImageBitmap(bitmap);

else {

queuePhoto(url, imageView);

imageView.setImageResource(stub_id);

}

}

private void queuePhoto(String url, ImageView imageView) {

PhotoToLoad p = new PhotoToLoad(url, imageView);

executorService.submit(new PhotosLoader(p));

}

private Bitmap getBitmap(String url) {

File f = fileCache.getFile(url);

Bitmap b = decodeFile(f);

if (b != null)

return b;

// Download Images from the Internet

try {

Bitmap bitmap = null;

URL imageUrl = new URL(url);

HttpURLConnection conn = (HttpURLConnection) imageUrl

.openConnection();

conn.setConnectTimeout(30000);

conn.setReadTimeout(30000);

conn.setInstanceFollowRedirects(true);

InputStream is = conn.getInputStream();

OutputStream os = new FileOutputStream(f);

Utils.CopyStream(is, os);

os.close();

conn.disconnect();

bitmap = decodeFile(f);

return bitmap;

} catch (Throwable ex) {

ex.printStackTrace();

if (ex instanceof OutOfMemoryError)

memoryCache.clear();

return null;

}

}

// Decodes image and scales it to reduce memory consumption

private Bitmap decodeFile(File f) {

try {

// Decode image size

BitmapFactory.Options o = new BitmapFactory.Options();

o.inJustDecodeBounds = true;

FileInputStream stream1 = new FileInputStream(f);

BitmapFactory.decodeStream(stream1, null, o);

stream1.close();

// Find the correct scale value. It should be the power of 2.

// Recommended Size 512

final int REQUIRED_SIZE = 70;

int width_tmp = o.outWidth, height_tmp = o.outHeight;

int scale = 1;

while (true) {

if (width_tmp / 2 < REQUIRED_SIZE

|| height_tmp / 2 < REQUIRED_SIZE)

break;

width_tmp /= 2;

height_tmp /= 2;

scale *= 2;

}

// Decode with inSampleSize

BitmapFactory.Options o2 = new BitmapFactory.Options();

o2.inSampleSize = scale;

FileInputStream stream2 = new FileInputStream(f);

Bitmap bitmap = BitmapFactory.decodeStream(stream2, null, o2);

stream2.close();

return bitmap;

} catch (FileNotFoundException e) {

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

// Task for the queue

private class PhotoToLoad {

public String url;

public ImageView imageView;

public PhotoToLoad(String u, ImageView i) {

url = u;

imageView = i;

}

}

class PhotosLoader implements Runnable {

PhotoToLoad photoToLoad;

PhotosLoader(PhotoToLoad photoToLoad) {

this.photoToLoad = photoToLoad;

}

@Override

public void run() {

try {

if (imageViewReused(photoToLoad))

return;

Bitmap bmp = getBitmap(photoToLoad.url);

memoryCache.put(photoToLoad.url, bmp);

if (imageViewReused(photoToLoad))

return;

BitmapDisplayer bd = new BitmapDisplayer(bmp, photoToLoad);

handler.post(bd);

} catch (Throwable th) {

th.printStackTrace();

}

}

}

boolean imageViewReused(PhotoToLoad photoToLoad) {

String tag = imageViews.get(photoToLoad.imageView);

if (tag == null || !tag.equals(photoToLoad.url))

return true;

return false;

}

// Used to display bitmap in the UI thread

class BitmapDisplayer implements Runnable {

Bitmap bitmap;

PhotoToLoad photoToLoad;

public BitmapDisplayer(Bitmap b, PhotoToLoad p) {

bitmap = b;

photoToLoad = p;

}

public void run() {

if (imageViewReused(photoToLoad))

return;

if (bitmap != null)

photoToLoad.imageView.setImageBitmap(bitmap);

else

photoToLoad.imageView.setImageResource(stub_id);

}

}

public void clearCache() {

memoryCache.clear();

fileCache.clear();

}

}

>我有一个XML的imageview

>如何设置JSONURL的图像视图

>我编写了课程的一部分,但试图知道如何设置

ImageView的

有任何想法吗

解决方法:

您可以使用ImageLoader设置图像…

全局创建ImageLoader的实例,如..

ImageLoader imageLoader;

@Override

protected void onCreate(Bundle savedInstanceState) {

......

imageLoader=new ImageLoader(ClassName.this);

ImageView imageView = (ImageView) findViewById(R.id.DISP_IMG);

......

imageLoader.DisplayImage(YourImageURLHere,imageView);

标签:android,java,json,xml,android-layout

来源: https://codeday.me/bug/20191003/1849083.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值