在好例子网,分享、交流、成长!
您当前所在位置:首页Java 开发实例Android平台开发 → 获取系统图库的图片,调用系统相机,并生成预览,

获取系统图库的图片,调用系统相机,并生成预览,

Android平台开发

下载此实例
  • 开发语言:Java
  • 实例大小:2.06M
  • 下载次数:30
  • 浏览次数:596
  • 发布时间:2014-12-10
  • 实例类别:Android平台开发
  • 发 布 人:renyuan_1991
  • 文件格式:.rar
  • 所需积分:5

实例介绍

**
 * 这个是进入相册显示所有图片的界面
 * 
 * @author king
 * @QQ:595163260
 * @version 2014年10月18日  下午11:47:15
 */
public class AlbumActivity extends Activity {
//显示手机里的所有图片的列表控件
private GridView gridView;
//当手机里没有图片时,提示用户没有图片的控件
private TextView tv;
//gridView的adapter
private AlbumGridViewAdapter gridImageAdapter;
//完成按钮
private Button okButton;
// 返回按钮
private Button back;
// 取消按钮
private Button cancel;
private Intent intent;
// 预览按钮
private Button preview;
private Context mContext;
private ArrayList<ImageItem> dataList;
private AlbumHelper helper;
public static List<ImageBucket> contentList;
public static Bitmap bitmap;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(Res.getLayoutID("plugin_camera_album"));
PublicWay.activityList.add(this);
mContext = this;
//注册一个广播,这个广播主要是用于在GalleryActivity进行预览时,防止当所有图片都删除完后,再回到该页面时被取消选中的图片仍处于选中状态
IntentFilter filter = new IntentFilter("data.broadcast.action");  
registerReceiver(broadcastReceiver, filter);  
        bitmap = BitmapFactory.decodeResource(getResources(),Res.getDrawableID("plugin_camera_no_pictures"));
        init();
initListener();
//这个函数主要用来控制预览和完成按钮的状态
isShowOkBt();
}

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {  
 
        @Override  
        public void onReceive(Context context, Intent intent) {  
        //mContext.unregisterReceiver(this);
            // TODO Auto-generated method stub  
        gridImageAdapter.notifyDataSetChanged();
        }  
    };  

// 预览按钮的监听
private class PreviewListener implements OnClickListener {
public void onClick(View v) {
if (Bimp.tempSelectBitmap.size() > 0) {
intent.putExtra("position", "1");
intent.setClass(AlbumActivity.this, GalleryActivity.class);
startActivity(intent);
}
}

}

// 完成按钮的监听
private class AlbumSendListener implements OnClickListener {
public void onClick(View v) {
overridePendingTransition(R.anim.activity_translate_in, R.anim.activity_translate_out);
intent.setClass(mContext, MainActivity.class);
startActivity(intent);
finish();
}

}

// 返回按钮监听
private class BackListener implements OnClickListener {
public void onClick(View v) {
intent.setClass(AlbumActivity.this, ImageFile.class);
startActivity(intent);
}
}

// 取消按钮的监听
private class CancelListener implements OnClickListener {
public void onClick(View v) {
Bimp.tempSelectBitmap.clear();
intent.setClass(mContext, MainActivity.class);
startActivity(intent);
}
}



// 初始化,给一些对象赋值
private void init() {
helper = AlbumHelper.getHelper();
helper.init(getApplicationContext());

contentList = helper.getImagesBucketList(false);
dataList = new ArrayList<ImageItem>();
for(int i = 0; i<contentList.size(); i ){
dataList.addAll( contentList.get(i).imageList );
}

back = (Button) findViewById(Res.getWidgetID("back"));
cancel = (Button) findViewById(Res.getWidgetID("cancel"));
cancel.setOnClickListener(new CancelListener());
back.setOnClickListener(new BackListener());
preview = (Button) findViewById(Res.getWidgetID("preview"));
preview.setOnClickListener(new PreviewListener());
intent = getIntent();
Bundle bundle = intent.getExtras();
gridView = (GridView) findViewById(Res.getWidgetID("myGrid"));
gridImageAdapter = new AlbumGridViewAdapter(this,dataList,
Bimp.tempSelectBitmap);
gridView.setAdapter(gridImageAdapter);
tv = (TextView) findViewById(Res.getWidgetID("myText"));
gridView.setEmptyView(tv);
okButton = (Button) findViewById(Res.getWidgetID("ok_button"));
okButton.setText(Res.getString("finish") "(" Bimp.tempSelectBitmap.size()
"/" PublicWay.num ")");
}

private void initListener() {

gridImageAdapter
.setOnItemClickListener(new AlbumGridViewAdapter.OnItemClickListener() {

@Override
public void onItemClick(final ToggleButton toggleButton,
int position, boolean isChecked,Button chooseBt) {
if (Bimp.tempSelectBitmap.size() >= PublicWay.num) {
toggleButton.setChecked(false);
chooseBt.setVisibility(View.GONE);
if (!removeOneData(dataList.get(position))) {
Toast.makeText(AlbumActivity.this, Res.getString("only_choose_num"),
200).show();
}
return;
}
if (isChecked) {
chooseBt.setVisibility(View.VISIBLE);
Bimp.tempSelectBitmap.add(dataList.get(position));
okButton.setText(Res.getString("finish") "(" Bimp.tempSelectBitmap.size()
"/" PublicWay.num ")");
} else {
Bimp.tempSelectBitmap.remove(dataList.get(position));
chooseBt.setVisibility(View.GONE);
okButton.setText(Res.getString("finish") "(" Bimp.tempSelectBitmap.size() "/" PublicWay.num ")");
}
isShowOkBt();
}
});

okButton.setOnClickListener(new AlbumSendListener());

}

private boolean removeOneData(ImageItem imageItem) {
if (Bimp.tempSelectBitmap.contains(imageItem)) {
Bimp.tempSelectBitmap.remove(imageItem);
okButton.setText(Res.getString("finish") "(" Bimp.tempSelectBitmap.size() "/" PublicWay.num ")");
return true;
}
return false;
}

public void isShowOkBt() {
if (Bimp.tempSelectBitmap.size() > 0) {
okButton.setText(Res.getString("finish") "(" Bimp.tempSelectBitmap.size() "/" PublicWay.num ")");
preview.setPressed(true);
okButton.setPressed(true);
preview.setClickable(true);
okButton.setClickable(true);
okButton.setTextColor(Color.WHITE);
preview.setTextColor(Color.WHITE);
} else {
okButton.setText(Res.getString("finish") "(" Bimp.tempSelectBitmap.size() "/" PublicWay.num ")");
preview.setPressed(false);
preview.setClickable(false);
okButton.setPressed(false);
okButton.setClickable(false);
okButton.setTextColor(Color.parseColor("#E1E0DE"));
preview.setTextColor(Color.parseColor("#E1E0DE"));
}
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
intent.setClass(AlbumActivity.this, ImageFile.class);
startActivity(intent);
}
return false;

}
@Override
protected void onRestart() {
isShowOkBt();
super.onRestart();
}

实例下载地址

获取系统图库的图片,调用系统相机,并生成预览,

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警