I want set gridview for questions and if the question is answered add a bubble top or bottom of the question image (Like in the image).
I've done everything (the gridview and if answered....) except for this bubble, I don't know how to do it.
I have added the codes of my application
Like in this image:
The base adapter activitiy
public class ImgAdapter extends BaseAdapter {
private Context mContext;
private ColorMatrixColorFilter cf;
String Questions = Question.Questions;
int level = Levels.level;
public ImgAdapter(Context c) {
mContext = c;
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0); //0 means grayscale
cf = new ColorMatrixColorFilter(matrix);
}
public int getCount() {
return mThumbIds.length;
}
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;
SharedPreferences pref = mContext.getSharedPreferences(Questions, Context.MODE_PRIVATE);
imageView = (ImageView) convertView;
imageView = new ImageView(mContext);
int size = mContext.getResources().getDimensionPixelSize(R.dimen.width);
imageView.setLayoutParams(new GridView.LayoutParams(size, size));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setAdjustViewBounds(true);
imageView.setImageResource(mThumbIds[position]);
if(pref.getBoolean("answered"+position, false)){
imageView.setImageResource(mThumbIds[position]);
}
return imageView;
}
public static Integer[] mThumbIds =
{
R.drawable.1,
R.drawable.2,
R.drawable.3,
R.drawable.4,
R.drawable.5,
R.drawable.6,
R.drawable.7,
R.drawable.8,
R.drawable.9,
R.drawable.10,
R.drawable.11,
R.drawable.12,
R.drawable.13,
R.drawable.14,
R.drawable.15,
R.drawable.16,
R.drawable.17,
R.drawable.18,
R.drawable.19,
R.drawable.20
};
}
And questions activity:
public class Questions extends Activity {
public static ArrayList<QuestionId> items;
public static int numCorrect;
public static final String Questions = "LogoSettings"; // Shared Preferences
public static int Correct;
public static int Coins;
int level = Levels.level;
TextView completed;
/*TextView correct;*/
ImgAdapter imgAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences pref = getSharedPreferences(Questions, MODE_PRIVATE);
Editor editor = pref.edit();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_logo_quiz);
LinearLayout v = (LinearLayout) findViewById(R.id.layout);
v.setBackgroundColor(0xffECECEC);
Correct = pref.getInt(level+"Correctt", 0);
completed = (TextView) findViewById(R.id.Correct);
completed.setText("Completed: " + Correct + "/18");
imgAdapter = new ImgAdapter(this);
items = new ArrayList<QuestionId>();
for(int i = 0; i < ImgAdapter.mThumbIds.length; i++) // set ids
items.add(new QuestionId(i, Questions.this)); // add the questions
GridView gridview = (GridView) findViewById(R.id.Questions);
gridview.setAdapter(imgAdapter);
gridview.setVerticalScrollBarEnabled(false);
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Intent intent = new Intent(Questions.this, Answer.class);
intent.putExtra("id", position);
onActivityResult(position, position, intent); // to pass id
startActivityForResult(intent, position);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent i) {
SharedPreferences pref = getSharedPreferences(Questions, MODE_PRIVATE);
int id = i.getExtras().getInt("id"); // get id
if(pref.getBoolean(level+"answered"+id, true)){ // if item answered
completed = (TextView) findViewById(R.id.Correct);
Correct = pref.getInt(level+"Correctt", 0);
imgAdapter.notifyDataSetChanged();
completed.setText("Completed: " + Correct + "/18");
}
}
}
0 comments:
Post a Comment