如何在Android中將Text和圖像(圖像URL)設置爲Gridview並且ImageSize應該固定爲所有圖像 注意:我正在收集這些數據(IMage URL和從Web服務文本)如何在Android中設置文本和圖像(圖像URL)到Gridview
回答
你必須做出例如自己的佈局,
<RelativeLayout
android:id="@+id/relGrid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" >
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:columnWidth="90dp"
android:numColumns="3"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:listSelector="@null" />
</RelativeLayout>
作一次佈局,每個項目在網格
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="120dp"
android:background="@drawable/background">
<ImageView
android:layout_width="wrap_content"
android:id="@+id/imgGrid"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"/>
<TextView
android:layout_below="@+id/imgGrid"
android:layout_centerInParent="true"
android:id="@+id/txtTitle"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="center"
android:text=""
android:textStyle="bold"
android:textSize="15dp"
android:textColor="@color/blue"/>
</RelativeLayout>
然後使用網格查看這個樣子,
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(MainActivity.this,R.layout.grid_layout , imgArray, titleArray));
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
if(position == 0)
{
//your code
}
}
});
ImageAdapter.java
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ImageAdapter extends ArrayAdapter<Object>
{
String TAG = "ImageAdapter";
private int resource;
private Integer[] mImgGrid;
private String[] mTitleText;
public ImageAdapter(Context context, int resorce, Integer[] imgGrid,String[] titleText)
{
super(context, resorce, imgGrid);
Log.i(TAG," in set adapter lstRecipes "+ imgGrid.length);
this.resource = resorce;
this.mImgGrid = imgGrid;
this.mTitleText = titleText;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if (convertView == null)
{
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
convertView = layoutInflater.inflate(resource, parent, false);
holder = new ViewHolder();
holder.txtTitle = (TextView)convertView.findViewById(R.id.txtTitle);
holder.imgGrid = (ImageView)convertView.findViewById(R.id.imgGrid);
convertView.setTag(holder);
}
else
{
holder=(ViewHolder)convertView.getTag();
}
try
{
holder.txtTitle.setText(mTitleText[position]);
holder.imgGrid.setImageResource(mImgGrid[position]);
}
catch (Exception e)
{
e.printStackTrace();
}
return convertView;
}
public static class ViewHolder
{
private TextView txtTitle;
private ImageView imgGrid;
}
}
如果您是使用圖像,並直接從Web服務文本,然後它不是什麼大不了的,你可以從web服務解析你的數據,你可以設置,在這個ImageView和TextView。
@ Mansi:謝謝亞爾。我只使用Webservice。我解析了數據..讓我試着說,你ü – 2012-02-15 10:43:07
你喜歡這個想法/代碼嗎? – anddev 2012-02-15 10:48:09
@ Mansi:如何將解析的數據聲明爲textview和Imageview.As它是一個靜態類,我無法聲明它.. AnyComplete源代碼是非常讚賞(僅適用於webservice,如果有的話) – 2012-02-15 11:08:02
1)爲gridview創建一個xml佈局。
<?xml version="1.0" encoding="utf-8"?>
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:columnWidth="80dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:background="@color/white"
>
</GridView>
2)創建一個多個佈局home_screen_text.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget44"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_x="201px"
android:layout_y="165px"
android:gravity="center_horizontal"
>
<ImageView
android:id="@+id/icon_image"
android:layout_width="wrap_content"
android:layout_height="80dp"
>
</ImageView>
<TextView
android:id="@+id/icon_text"
android:typeface="serif"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="@color/black"
android:textStyle="bold"
android:lines="2">
</TextView>
</LinearLayout>
3)然後使用GridView。 GridView GridView =(GridView)findViewById(R.id.GridView01); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(新OnItemClickListener(){ 公共無效onItemClick(適配器視圖父母,視圖V, INT位置,長的id){} }
4)創建一個繼承baseadapter一個imageadapter類。
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public static final int ACTIVITY_CREATE = 10;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThumbIds1.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
View v;
if (convertView == null) {
imageView = new ImageView(mContext);
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.home_screen_text, null);
TextView tv = (TextView) v.findViewById(R.id.icon_text);
tv.setText("" + iconText.get(position).toString());
ImageView iv = (ImageView) v.findViewById(R.id.icon_image);
iv.setImageResource(mThumbIds1.get(position));
} else {
v = convertView;
imageView = new ImageView(mContext);
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.home_screen_text, null);
TextView tv = (TextView) v.findViewById(R.id.icon_text);
tv.setText("" + iconText.get(position).toString());
ImageView iv = (ImageView) v.findViewById(R.id.icon_image);
iv.setImageDrawble(drawable_from_url("url of the image", "name"));
}
return v;
}
}
返回可繪製的方法。 可繪製drawable_from_url(String url,String src_name)拋出java.net.MalformedURLException,java.io.IOException { return Drawable.createFromStream(((java.io.InputStream))new java.net.URL(url).awagetContent( )),src_name); }
@ Rakshi:感謝您的幫助,但我使用webservice我的朋友 – 2012-02-15 11:16:00
- 1. 如何在gridview中使用URL的ArrayList設置圖像?
- 2. 如何在按鈕中設置文本中的圖像 - android?
- 3. 如何在Android ImageView中設置圖像
- 4. 如何在Android中設置圖像
- 5. 如何從gridview設置onClick圖像?
- 6. Android圖像從URL到圖像視圖
- 7. 在gridview中設置圖像爲透明
- 8. 在gridview中設置圖像大小
- 9. 如何在Android中設置邊框和旋轉位圖圖像?
- 10. GridView中的URL圖像
- 11. 如何在td圖像和文本位置設置
- 12. 如何在圖像上下文中繪製圖像和文本?
- 13. 如何設置android中的圖像
- 14. 如何設置圖像和文本在android中的按鈕的中心
- 15. 在gridview中,我想爲該圖像設置一個圖像和一個名稱?
- 16. 向圖像和文本添加gridview
- 17. 如何在GridView中設置圖像顯示中的TextView在Android中
- 18. Android如何顯示URL和圖像
- 19. 如何將圖像轉換成文本和圖像到wpf + c#
- 20. 我如何設置捕捉圖像到圖像視圖
- 21. 如何在gridview中設置圖像的郵件作爲
- 22. 如何設置特定的ListView行的文本/圖像 - Android?
- 23. Android - 如何設置壁紙圖像
- 24. Android - 如何設置壁紙圖像?
- 25. 如何在Android上的Glide中設置位圖圖像
- 26. 無法將圖像和文本視圖置於Android中心
- 27. 如何使WPF中沒有圖像的圖像和文本在文本塊文本的中心位置
- 28. 在android設置圖像資源中的圖像
- 29. 在Android中的圖像按鈕上設置前景圖像
- 30. 如何在Android中將位圖保存到位圖時設置dpi圖像?
你有什麼代碼嗎? – himanshu 2012-02-15 10:36:57
是的..我有解析數據在我的手裏,它構成Id,圖像的URL和名稱..如何把它放到一個gridview ..輸出willbe的圖像和文本(應該在圖像下方) – 2012-02-15 12:18:57