Android : Set ImageView on ImageView if something

on Saturday, August 9, 2014


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:


http://i.stack.imgur.com/JS36H.png


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