|
package com.electric.chargingpile.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.Nullable;
import android.text.Editable;
import android.text.Html;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.electric.chargingpile.R;
import com.electric.chargingpile.data.TalkRecommendBean;
import com.electric.chargingpile.util.BarColorUtil;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.compress.Luban;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.umeng.analytics.MobclickAgent;
import java.io.File;
import java.util.List;
public class PublishTopicActivity extends Activity implements OnClickListener {
Context mContext;
private ImageView mPublishtopicBack;
private TextView mPublishtopicPublish;
private EditText mPublishtopicCon;
private ImageView mPublishtopicGv;
private TextView mPublishtopicChooseTopic;
private TextView mPublishtopicChoosePreview;
private TextView mPublishtopicWordNum;
private ImageView mPublishTopicDe;
private RelativeLayout mItemVideoLl;
private ImageView mItemVideo;
private View mItemVideoDelete;
public static final String CACHE_DIR = Environment.getExternalStorageDirectory().getAbsolutePath() + "/cdz";
public static final String IMAGE_CACHE = CACHE_DIR + "/cache/image/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_publishtopic);
mContext = this;
BarColorUtil.initStatusBarColor(PublishTopicActivity.this);
initView();
}
private void initView() {
mPublishtopicBack = (ImageView) findViewById(R.id.publishtopic_back);
mPublishtopicPublish = (TextView) findViewById(R.id.publishtopic_publish);
mPublishtopicCon = (EditText) findViewById(R.id.publishtopic_con);
mPublishtopicGv = (ImageView) findViewById(R.id.item_choose_video);
mPublishtopicChooseTopic = (TextView) findViewById(R.id.publishtopic_choose_topic);
mPublishtopicChoosePreview = (TextView) findViewById(R.id.publishtopic_choose_preview);
mPublishtopicWordNum = (TextView) findViewById(R.id.publishtopic_word_num);
mPublishTopicDe = (ImageView) findViewById(R.id.publishtopic_choose_topic_de);
mItemVideoLl = (RelativeLayout) findViewById(R.id.item_video_ll);
mItemVideo = (ImageView) findViewById(R.id.item_video);
mItemVideoDelete = (View) findViewById(R.id.item_video_delete);
mPublishtopicCon.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
int length = editable.length();
if (length > 500) {
mPublishtopicWordNum.setText(Html.fromHtml("<font color=\"#FF4E4E\">" + length + "</font>/500"));
} else {
mPublishtopicWordNum.setText(length + "/500");
}
}
});
mPublishtopicBack.setOnClickListener(this);
mPublishtopicPublish.setOnClickListener(this);
mPublishtopicChoosePreview.setOnClickListener(this);
mPublishtopicChooseTopic.setOnClickListener(this);
mPublishTopicDe.setOnClickListener(this);
mItemVideoDelete.setOnClickListener(this);
mPublishtopicGv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.publishtopic_back:
finish();
break;
case R.id.publishtopic_publish:
break;
case R.id.publishtopic_choose_topic:
startActivityForResult(new Intent(this, TopicActivity.class), reqTopic);
break;
case R.id.publishtopic_choose_preview:
break;
case R.id.publishtopic_choose_topic_de:
mPublishtopicChooseTopic.setText("# 选择话题");
mPublishTopicDe.setVisibility(View.GONE);
talkRecommendBean = null;
break;
case R.id.item_choose_video:
PictureSelector.create(this)
.openGallery(PictureMimeType.ofVideo())// 全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
.theme(R.style.picture_default_style)// 主题样式设置 具体参考 libray中values/styles
.maxSelectNum(9)// 最大图片选择数量
.minSelectNum(1)// 最小选择数量
.imageSpanCount(4)// 每行显示个数
.selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE : PictureConfig.SINGLE
.previewImage(true)// 是否可预览图片
.previewVideo(true)// 是否可预览视频
.enablePreviewAudio(false)// 是否预览音频
.isCamera(true)// 是否显示拍照按钮
.isZoomAnim(true)// 图片列表点击 缩放效果 默认true
.setOutputCameraPath(IMAGE_CACHE)// 自定义拍照保存路径
.compress(true)// 是否压缩
.compressMode(PictureConfig.LUBAN_COMPRESS_MODE)//系统自带 or 鲁班压缩 PictureConfig.SYSTEM_COMPRESS_MODE or LUBAN_COMPRESS_MODE
.glideOverride(160, 160)// glide 加载宽高,越小图片列表越流畅,但会影响列表图片浏览的清晰度
.isGif(false)// 是否显示gif图片
.openClickSound(false)// 是否开启点击声音
.compressGrade(Luban.CUSTOM_GEAR)
.compressMaxKB(1024)//压缩最大值kb compressGrade()为Luban.CUSTOM_GEAR有效
.minimumCompressSize(500) //add by tanhaiqin, 图片大小 <= 500KB(数字可变) 不需要压缩
.videoSecond(5 * 60)//显示多少秒以内的视频
.recordVideoSecond(15)//录制视频秒数 默认60秒
.forResult(PictureConfig.CHOOSE_REQUEST);
break;
case R.id.item_video_delete:
mItemVideoLl.setVisibility(View.GONE);
mPublishtopicGv.setVisibility(View.VISIBLE);
break;
default:
break;
}
}
final int reqTopic = -100;
TalkRecommendBean talkRecommendBean = null;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == -100 && resultCode == -100) {
talkRecommendBean = (TalkRecommendBean) data.getSerializableExtra("topic");
if (talkRecommendBean != null) {
mPublishtopicChooseTopic.setText("# " + talkRecommendBean.name);
mPublishTopicDe.setVisibility(View.VISIBLE);
}
} else if (requestCode == PictureConfig.CHOOSE_REQUEST && resultCode == RESULT_OK) {
List<LocalMedia> selectList = PictureSelector.obtainMultipleResult(data);
if (selectList != null && selectList.size() > 0) {
LocalMedia media = selectList.get(0);
if (TextUtils.isEmpty(media.getPath())) {
return;
}
if (!fileIsExists(media.getPath())) {
Log.e("yopic", "文件可能不存在了~");
return;
}
Glide.with(this).load(Uri.fromFile(new File(media.getPath())))
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model,
Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model,
Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
})
.into(mItemVideo);
mItemVideoLl.setVisibility(View.VISIBLE);
mPublishtopicGv.setVisibility(View.GONE);
Log.e("yopic", "TEST===> video path = " + media.getPath()
+ ", compressPath = " + media.getCompressPath()
+ ", height = " + media.getHeight()
+ ", width = " + media.getWidth());
}
}
}
public static boolean fileIsExists(String strFile) {
if (TextUtils.isEmpty(strFile)) {
return false;
}
try {
File f = new File(strFile);
if (!f.exists()) {
return false;
}
} catch (Exception e) {
return false;
}
return true;
}
@Override
protected void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
}
|