最近在做基于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();
}
});