首先,我将向您展示我的ImageAdapter
代码,该代码会创建GridView
图片:
package com.example.rafal.gra;
import android.content.Context;
import android.content.res.Resources;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
public class ImageAdapter extends BaseAdapter{
private Context CTX;
public Integer image_id[] = {R.mipmap.empty,R.mipmap.empty,R.mipmap.empty,
R.mipmap.empty, R.mipmap.empty, R.mipmap.empty, R.mipmap.empty,
R.mipmap.empty,R.mipmap.empty,R.mipmap.empty,R.mipmap.empty,
R.mipmap.empty, R.mipmap.empty, R.mipmap.empty, R.mipmap.empty,
R.mipmap.empty, R.mipmap.empty, R.mipmap.empty, R.mipmap.empty,
R.mipmap.empty};
public ImageAdapter(Context CTX){
this.CTX = CTX;
}
@Override
public int getCount() {
return image_id.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView img;
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80,
CTX.getResources().getDisplayMetrics());
if(convertView == null){
img = new ImageView(CTX);
img.setLayoutParams(new GridView.LayoutParams(height,height));
img.setScaleType(ImageView.ScaleType.CENTER_CROP);
img.setPadding(1,1,1,1);
}else{
img = (ImageView) convertView;
}
img.setImageResource(image_id[position]);
return img;
}
//adding item to bp
public void changeImage(int position, int image){
if(position >= 0 && position < image_id.length){
image_id[position] = image;
notifyDataSetChanged();
}
}
}
此GridView
表示我的游戏存款,当我打开DepotActivity
时,这些图块上会显示不同的项目。
我想要做的就是在每个瓷砖(底部/右角)添加TextView
,这将显示项目数量(我的每个项目都有一个变量“数量”)。有人可以帮帮我吗?
答案 0 :(得分:0)
您可以将getView()方法设置为动态添加一个imageView和一个textView,还需要添加一个持有者类,这有助于您更好地实现。我希望这会对你有所帮助。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
ViewHolder viewHolder;
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80, CTX.getResources().getDisplayMetrics());
if(convertView == null){
viewHolder = new ViewHolder();
viewHolder.layoutSection = new LinearLayout(CTX);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER;
params.setMargins(5,5,5,5);
viewHolder.img = new ImageView(CTX);
viewHolder.img.setLayoutParams(new GridView.LayoutParams(height,height));
viewHolder.img.setScaleType(ImageView.ScaleType.CENTER_CROP);
viewHolder.img.setPadding(1,1,1,1);
viewHolder.textView = new TextView(CTX);
viewHolder.textView.setText(("Enter text here");
viewHolder.layoutSection.addView(viewHolder.textView);
viewHolder.layoutSection.addView(viewHolder.img);
itemView = viewHoder;
itemView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder)itemView.getTag();
}
viewHolder.img.setImageResource(image_id[position]);
viewHolder.textView.setText("");// you can set your text here
return itemView;
}
class ViewHolder {
ImageView img;
TextView textView;
LinearLayout layoutSection;
}