package com.input.shao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Html.ImageGetter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
public class InputImageActivity extends Activity {
/** Called when the activity is first created. */
private EditText input;
private Button btn;
private Button btn1;
private TextView tv;
private TextView show;
private AlertDialog imageChooseDialog;
private View imageViews;
private int selectedId;
private int[] resIds = new int[]
{ R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4,
R.drawable.image5, R.drawable.image6, R.drawable.image7,
R.drawable.image8, R.drawable.image9, R.drawable.image10,
R.drawable.image11, R.drawable.image12, R.drawable.image13,
R.drawable.image14, R.drawable.image15,R.drawable.image16 };
@Override
public void onCreate(Bundle savedInstanceState) {
/** Called when the activity is first created. */
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.show);
btn = (Button) findViewById(R.id.btn);
input = (EditText) findViewById(R.id.input);
btn1 = (Button) findViewById(R.id.btn1);
show = (TextView) findViewById(R.id.showview);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
loadImage();
initImageChooseDialog();
imageChooseDialog.show();
//input.append(Html.fromHtml("aa<img src='"+R.drawable.image2+"'/>bb", imageGetter, null));
}
});
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
show.append(input.getText());
}
});
}
public void loadImage() {
LayoutInflater dialoglayout = LayoutInflater.from(this);
imageViews = dialoglayout.inflate(R.layout.gridview, null);
GridView gridView = (GridView) imageViews.findViewById(R.id.gridview);
ImageView imageView = (ImageView) imageViews.findViewById(R.id.imageview);
List<Map<String, Object>> cells = new ArrayList<Map<String, Object>>();
for (int i = 0; i < resIds.length; i++)
{
Map<String, Object> cell = new HashMap<String, Object>();
cell.put("imageview", resIds[i]);
cells.add(cell);
}
gridView.setAdapter(new MyAdapter(this));
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
selectedId = arg2;
System.out.println("CLickId-->"+selectedId);
}
});
gridView.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int position,
long id) {
System.out.println("position-->"+position);
System.out.println("id-->"+id);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
imageView.setImageResource(resIds[selectedId]);
}
public void initImageChooseDialog() {
if(imageChooseDialog == null) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择图像")
.setView(imageViews).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
long id = resIds[selectedId];
input.append(Html.fromHtml("<img src='"+id+"'/>", imageGetter, null));
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
imageChooseDialog = builder.create();
}
}
ImageGetter imageGetter = new ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int id = Integer.parseInt(source);
// 根据id从资源文件中获取图片对象
Drawable d = getResources().getDrawable(id);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
return d;
}
};
class MyAdapter extends BaseAdapter{
Context context;
public MyAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return resIds.length;
}
@Override
public Object getItem(int item) {
// TODO Auto-generated method stub
return item;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageView=null;
if(convertView ==null){
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(45,45));
imageView.setAdjustViewBounds(false);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8,8,8,8);
}else{
imageView = (ImageView)convertView;
}
imageView.setImageResource(resIds[position]);
return imageView;
}
}
}