将gridview中的图像设置为透明

时间:2013-03-03 11:52:14

标签: android gridview imageview

所以我在gridview中有图像。这些图像显示在活动中。单击其中一个图像时,将使用此图像启动新活动。在此活动中,如果用户输入正确答案,则会启动新活动以指示答案是否正确。在用户输入正确答案后,我想在gridwiew中使用复选标记将此图像设置为更透明。如果用户再次点击这个正确的视图,我想显示相同的活动,表明它已被解决正确。我怎么能这样做?

这是我的活动,其中包含网格视图:

public class LogoSelectionActivity extends Activity {
.
.
 gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {

             Intent intent = new Intent(LogoSelectionActivity.this, LogoActivity.class);
             intent.putExtra ("clicked_position", position);
             startActivity(intent);
}

以下是我的用户输入输入的活动:

public class LogoActivity extends Activity{

EditText text;
Button check;
Boolean a;
int id;
Names name;
@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_logo);
    check = (Button) findViewById(R.id.Check_button);
    text = (EditText) findViewById(R.id.editText1);
    ImageView view = (ImageView)findViewById(R.id.imageView1);
    final ImageView incorrect = (ImageView)findViewById(R.id.incorrect);
    switch (getIntent().getIntExtra ("clicked_position", -1))
    {
      case 0:
        view.setImageResource(R.drawable.adese);
        id = R.drawable.adese;
        break;
      case 1:
         view.setImageResource(R.drawable.birvar);
         id = R.drawable.birvar;
         break;
      case 2:
         view.setImageResource(R.drawable.agaoglu);
         break;
      case 3:
          view.setImageResource(R.drawable.akinsoft);
          break;
      default:
         view.setImageResource(R.drawable.afra);
         id = R.drawable.afra;
    }
    name = Names.forDrawable(id);
    check.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            a=name.isCorrect(text.getText().toString());
            if(a==true){
            Intent intent = new Intent(LogoActivity.this, CorrectActivity.class);
            startActivity(intent);
            }
            else{
                incorrect.setVisibility(0);
                incorrect.setVisibility(4);
            }
        }
        });
    }
}

我希望我能清楚地解释我的意图。

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点。因为这不是问题,所以这是您在项目中需要的功能。

根据我的逻辑,我给你一个解决方案。

步骤:

  1. 在网格视图中创建一个具有项目长度的静态数组,默认值为0.

     static int[] items = {0,0,0,...};
    
  2. 现在检查网格视图的getView方法,其值是根据数组中的位置,如果它是0,那么它看起来会正常,否则它会看起来不同(这里你要透明检查你可以通过添加一个图像来获得它。)

    If(items[position] == 0){
    
    }else{
    
    }
    
  3. 现在,当用户点击任何图像并导航到其他屏幕(假设活动B)时,该时间从该数组传递该位置的值,并检查活动B的OnCreate()

    gridview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    
         Intent intent = new Intent(LogoSelectionActivity.this, LogoActivity.class);
         intent.putExtra ("clicked_position", position);
         intent.putExtra ("answered_or_not", items[position]);
    
         startActivity(intent);
    }
    
  4. 如果回答是指其值是否为1,则相应地显示其他情况。

  5. 当用户给出答案时,未答复的问题在该数组中使其值为1。

  6. 我希望它可以帮助您询问是否有任何问题。