关于gridView里面点击后图片变小的原因

来源:互联网 发布:美图美妆软件 编辑:程序博客网 时间:2024/05/02 02:16

最近在做基于9.7寸无线点菜系统要实现一页显示4个大图的菜,并在点击菜品图片的时候显示菜品详情,四张大图时可以左右滑动的额,本人使用ViewPage里面嵌套gridView来做的。但是问题处理了,再点击gridView里面图片的时候,弹出的菜品详情dialog的图片变小了。最后解决办法如下,在弹出的dialog的时候,图片转换成bitmap类型的。效果图如下:

核心代码如下:

 // 点击大图时进入详情界面。.Gallery初始化的时候只显示4个,当滑动的时候再添加。刷新适配器.
    viewHolder.img.setOnClickListener(new OnClickListener() {
     public void onClick(View v) {
      final CaiYao caiyao = caiYaoList.get(p);
      View bianJiView = layoutInflater.inflate(
        R.layout.caiyao_bianji, null);
      final Dialog d = new Dialog(DianCaiAct.this,
        R.style.dialog1);
      LinearLayout zuoFaLayout = (LinearLayout) bianJiView
        .findViewById(R.id.zuofa_layout);
      final EditText yaoQiuEdt = (EditText) bianJiView
        .findViewById(R.id.caiyao_bianji_yaoqiu);
      final EditText fenshuEdt = (EditText) bianJiView
        .findViewById(R.id.caiyao_xiangqing_fenshu);
      TextView caiYaoJianJieTv = (TextView) bianJiView
        .findViewById(R.id.caiyao_jianjie);
      TextView priceTv = (TextView) bianJiView
        .findViewById(R.id.caiyao_bianji_price);
      ImageView caiYaoJia = (ImageView) bianJiView
        .findViewById(R.id.caiyao_xiangqing_fenshu_add);
      ImageView caiYaoJian = (ImageView) bianJiView
        .findViewById(R.id.caiyao_xiangqing_fenshu_cut);
      ImageView caiYaoBianJiOk = (ImageView) bianJiView
        .findViewById(R.id.caiyao_bianji_ok);
      ImageView caiyao_bianji_tuichu = (ImageView) bianJiView
        .findViewById(R.id.caiyao_bianji_tuichu);

      caiYaoJianJieTv.setText(caiyao.getMenusNameCN());
      String sum = db.getSumOrderByMenuId(app.getTaiHao(),
        caiyao.getTaxisId());
      fenshuEdt.setText(sum);
      priceTv.setText(df.format(
        Double.valueOf(caiyao.getMenusPrice()))
        .toString());
      ImageView imgTitle = (ImageView) bianJiView
        .findViewById(R.id.img);
      // 根据穿过来的做法动态生成控件的浮选框。其实做法显示都没用,因为上传至服务器的时候就没有这条数据
      df = new DecimalFormat("0.00");
      String[] zuoFaStr = Tool.getStr(caiyao
        .getMenusModusOperandi());
      if (zuoFaStr == null || zuoFaStr[0].equals("")) {
       zuoFaStr = new String[] { "标准" };
      }
      for (int i = 0; i < zuoFaStr.length; i++) {
       CheckBox check = new CheckBox(DianCaiAct.this);
       /*
        * check.setLayoutParams(new
        * LinearLayout.LayoutParams(
        * LayoutParams.WRAP_CONTENT,
        * LayoutParams.WRAP_CONTENT));
        */
       check.setText(zuoFaStr[i].toString());
       check.setTextSize(20.0f);
       check.setTextColor(Color.BLACK);
       zuoFaLayout.addView(check);
      }

//将drawble类型转换成bitmap类型
      BitmapDrawable bd = (BitmapDrawable) drawable;
      Bitmap bm = bd.getBitmap();
      imgTitle.setImageBitmap(bm);


      db = new DbTool(DianCaiAct.this);
      app = (Session) getApplicationContext();
      // 设置菜的简介,如果没有简介则显示名称
      if (caiyao.getMenusIntro() != null
        && !caiyao.getMenusIntro().equals("")) {
       caiYaoJianJieTv.setText(caiyao.getMenusIntro());
      } else {
       caiYaoJianJieTv.setText(caiyao.getMenusNameCN());
      }
      caiYaoJia
        .setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
          String fen = fenshuEdt.getText()
            .toString();
          double shijiFen = Double.valueOf(fen);
          shijiFen = shijiFen + 1;
          fenshuEdt.setText(df.format(shijiFen));

         }
        });
      caiYaoJian
        .setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
          String fenShu = fenshuEdt.getText()
            .toString();
          double fen1 = Double.valueOf(fenShu);
          if (fen1 >= 1) {
           fen1 = fen1 - 1;
          } else if (fen1 > 0 && fen1 < 1) {
           fen1 = 0;
          }
          fenshuEdt.setText(df.format(fen1));

         }
        });
      caiYaoBianJiOk
        .setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
          d.cancel();
          String fenshu = fenshuEdt.getText()
            .toString().trim();
          viewHolder.fenshuTv.setText(fenshu);
          if (!fenshu.equals("")) {
           String sum = "";
           if (app.getTaiHao() != null) {
            sum = db.getSumOrderByMenuId(
              app.getTaiHao(),
              caiyao.getTaxisId());
           } else {
            sum = db.getSumOrderByMenuId(
              "", caiyao.getTaxisId());
           }
           if (Double.valueOf(fenshu) > Double
             .valueOf(sum)) {
            Order order = new Order();
            order.setTaiHao(app.getTaiHao() == null ? ""
              : app.getTaiHao());
            order.setDanWei(caiyao
              .getMenusUnit());
            order.setName(caiyao
              .getMenusNameCN());
            order.setTeShuZuoFa(yaoQiuEdt
              .getText().toString()
              .trim());
            // --wz-0725: 从份数文本框中获取用户输入数值
            order.setNum(String.valueOf(Double
              .valueOf(fenshu)
              - Double.valueOf(sum)));
            order.setPic(caiyao
              .getImageName());
            TuiJian tuiJian = db
              .selectTuiByID(caiyao
                .getTaxisId());
            order.setPrice(caiyao
              .getMenusPrice());
            order.setType(caiyao
              .getMenusType());
            order.setMenuid(caiyao
              .getTaxisId());
            order.setState("0");
            order.setMenusModusOperandi(caiyao
              .getMenusModusOperandi());
            db.insertOrder(order);
           } else if (Double.valueOf(fenshu) < Double
             .valueOf(sum)) {
            Order order = new Order();
            order.setTaiHao(app.getTaiHao() == null ? ""
              : app.getTaiHao());
            order.setDanWei(caiyao
              .getMenusUnit());
            order.setName(caiyao
              .getMenusNameCN());
            // --wz-0725: 从份数文本框中获取用户输入数值
            order.setNum(String.valueOf(Double
              .valueOf(sum)
              - Double.valueOf(fenshu)));
            order.setPic(caiyao
              .getImageName());
            TuiJian tuiJian = db
              .selectTuiByID(caiyao
                .getTaxisId());
            order.setPrice(caiyao
              .getMenusPrice());
            order.setType(caiyao
              .getMenusType());
            order.setMenuid(caiyao
              .getTaxisId());
            order.setState("0");
            order.setMenusModusOperandi(caiyao
              .getMenusModusOperandi());
            db.jianCaiByTaiHao(order);
           }
           String zongFenshu = db.getOrderCount(app
             .getTaiHao() == null ? ""
             : app.getTaiHao());
           allFenShuTv.setText(zongFenshu);
          }
         }
        });
      caiyao_bianji_tuichu
        .setOnClickListener(new View.OnClickListener() {
         public void onClick(View v) {
          d.cancel();
         }
        });

 

原创粉丝点击