gpt4 book ai didi

android - 图像显示为gridview

转载 作者:行者123 更新时间:2023-11-30 04:10:58 25 4
gpt4 key购买 nike

我想使用 imageurl 显示来自 mysql 服务器(在本地主机中测试)的图像,我的服务器上的 filder 中有图像,在 android 客户端应用程序中作为 gridview 以及文本。如何在我的代码中使用 imageurl?我的主菜单.java

public class MainMenu extends Activity {



GridView gridView;

static final String[] MOBILE_OS = new String[] {
"Android", "iOS","Windows", "Blackberry" };

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.mainmenu_list);


gridView = (GridView) findViewById(R.id.gridView1);

gridView.setAdapter(new ImageAdapter(this, MOBILE_OS));

gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(
getApplicationContext(),
((TextView) v.findViewById(R.id.grid_item_label))
.getText(), Toast.LENGTH_SHORT).show();

}
});

}

}

我的 imageadapter.java:

public class ImageAdapter extends BaseAdapter {
private Context context;
private final String[] mobileValues;
public ImageAdapter(Context context, String[] mobileValues) {
this.context = context;
this.mobileValues = mobileValues;
}

public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View gridView;

if (convertView == null) {

gridView = new View(context);

// get layout from list.xml
gridView = inflater.inflate(R.layout.list, null);

// set value into textview
TextView textView = (TextView) gridView
.findViewById(R.id.grid_item_label);
textView.setText(mobileValues[position]);

// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);

String mobile = mobileValues[position];

if (mobile.equals("Windows")) {
imageView.setImageResource(R.drawable.imggrid);
} else if (mobile.equals("iOS")) {
imageView.setImageResource(R.drawable.imggrid);
} else if (mobile.equals("Blackberry")) {
imageView.setImageResource(R.drawable.imggrid);
} else {
imageView.setImageResource(R.drawable.imggrid);
}

} else {
gridView = (View) convertView;
}

return gridView;
}

@Override
public int getCount() {
return mobileValues.length;
}

@Override
public Object getItem(int position) {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

我不知道如何在我的代码中使用以下内容:

try {
URL url = new URL(imageFileURL);
URLConnection conn = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection)conn;
httpConn.setRequestMethod("GET");
httpConn.connect();
if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream inputStream = httpConn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close();
img.setImageBitmap(bitmap);
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

最佳答案

将图片下载代码放在AsyncTask中。 Here is the explanation .在您的 getView 方法中执行一个 asynctask 实例,即每次获取一张图像。

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView mImageView;
public void setImageView(ImageView img) {
mImageView = img;
}

protected Bitmap doInBackground(String... urls) {
return loadImageFromNetwork(urls[0]);
}

protected void onPostExecute(Bitmap result) {
mImageView.setImageBitmap(result);
}

在执行 AsyncTask 之前调用 task.setImageView(yourImageViewinGrid) 以让它知道在下载后在哪里设置图像。

关于android - 图像显示为gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com