package com.wistron.WiViewer;
import android.graphics.Color;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
import android.util.Log;
/**
* 记录图片信息,包括图片名,文件创建时间,长宽,经纬度,模式
*
**/
public class ImageInfoBean
{
public String[] strings;
public String[] stringsInfo;
public String getM_name()
{
if(this.m_name!=null){
String[] m_filename;
m_filename=m_name.split("\\.");
String m_nameString="";
for(int i=0;i<m_filename.length-1;i++)
{
m_nameString+=m_filename[i];
if(i<m_filename.length-2)
m_nameString+=".";
}
return m_nameString;
}
else{
return "Unknown";
}
}
public String getM_path()
{
String string = m_path;
if (string.length() > 37)
{
return string.substring(0, 35) + "...";
} else
{
return string;
}
}
public String getM_gps_altitude()
{
return m_gps_altitude;
}
public String getM_gps_latitude()
{
String string;
if (m_gps_latitude != null){
string = m_gps_latitude;
Log.e("getM_gps_latitude", m_gps_latitude);
String[] liStrings = string.split(",");
double[] mStrings =new double[liStrings.length];
double e =0.0;
String a=null;
for(int i=0;i<liStrings.length;i++)
{
a=liStrings[i].split("/")[0];
if(i!=2)
mStrings[i]=Double.parseDouble(a);
else{
// mStrings[i]=Double.parseDouble(a)/100;
}
}
e=mStrings[0]+mStrings[1]/60+mStrings[2]/3600;
String reString=String.valueOf(e - (int) e);
String mString_afterdote="";
int lenghth= reString.length();
if(lenghth<=1)
{
mString_afterdote=".0";
}
else if(lenghth<=7) {
mString_afterdote=reString.substring(1, lenghth-1);
}
else
{
mString_afterdote=reString.substring(1, 6);
}
return (int) e + mString_afterdote;
}
else{
return "Unknown";
}
}
public String getM_gps_longitude()
{
String string;
if (m_gps_longitude != null){
string = m_gps_longitude;
Log.e("getM_gps_longitude", m_gps_longitude);
String[] liStrings = string.split(",");
double[] mStrings =new double[liStrings.length];
double e =0;
for(int i=0;i<liStrings.length;i++)
{
if(i!=2)
mStrings[i]=Double.parseDouble(liStrings[i].split("/")[0]);
else{
// mStrings[i]=Double.parseDouble(liStrings[i].split("/")[0])/100;
}
}
e=mStrings[0]+mStrings[1]/60+mStrings[2]/3600;
String reString=String.valueOf(e - (int) e);
String mString_afterdote="";
int lenghth= reString.length();
if(lenghth<=1)
{
mString_afterdote=".0";
}
else if(lenghth<=7) {
mString_afterdote=reString.substring(1, lenghth-1);
}
else
{
mString_afterdote=reString.substring(1, 6);
}
return (int) e + mString_afterdote;
}
else{
return "Unknown";
}
}
public String getM_image_length()
{
return m_image_length;
}
public String getM_image_width()
{
return m_image_width;
}
public String getM_mode()
{
if(m_mode==null)
return "Unknown";
return m_mode;
}
public String getM_make()
{
if(m_mode==null)
return "Unknown";
return m_make;
}
public void setM_name(String m_name)
{
this.m_name = m_name;
}
public void setM_path(String m_path)
{
this.m_path = m_path;
}
public void setM_gps_altitude(String m_gps_altitude)
{
this.m_gps_altitude = "null";
}
public void setM_gps_latitude(String m_gps_latitude)
{
this.m_gps_latitude = m_gps_latitude;
}
public void setM_gps_longitude(String m_gps_longitude)
{
this.m_gps_longitude = m_gps_longitude;
}
public void setM_image_length(String m_image_length)
{
this.m_image_length = m_image_length;
}
public void setM_image_width(String m_image_width)
{
this.m_image_width = m_image_width;
}
public void setM_mode(String m_mode)
{
this.m_mode = m_mode;
}
public void setM_make(String m_make)
{
this.m_make = m_make;
}
public String getM_time()
{
return m_time;
}
public void setM_time(String m_time)
{
this.m_time = m_time;
}
private String m_path;
private String m_name;
private String m_gps_altitude;
private String m_gps_latitude;
private String m_gps_longitude;
private String m_image_length;
private String m_image_width;
private String m_mode;
private String m_make;
private String m_time;
private String m_format;
private long m_size;
public String getM_orientation()
{
return m_orientation;
}
public void setM_orientation(String m_orientation)
{
this.m_orientation = m_orientation;
}
private String m_orientation;
public String getM_size()
{
if(this.m_size<=0)
return "Unknown";
float size = m_size;
if (size <= 1024)
return size + "Byte";
else if (size > 1024 && size <= 10 * 1024 * 1024)
{
String s=String.valueOf(size / 1024 - (int) (size / 1024))+"0000";
return (int) (size / 1024)
+ s.substring(1, 4) + "KB";
}
else
{
String ss=String.valueOf(
size / (1024 * 1024) - (int) (size / (1024 * 1024)))+"000";
return (int) (size / (1024 * 1024))
+ ss.substring(1,3) + "MB";
}
}
public void setM_size(long m_size)
{
this.m_size = m_size;
}
public void setLable()
{
strings=new String[10];
strings[0]="Image Title";
strings[1]="Compression";
strings[2]="Creation Date & Time";
strings[3]="Camera Model";
strings[4]="Dimension";
strings[5]="Image Size";
strings[6]="Orientation";
strings[7]="Location";
strings[8]="Latitude";
strings[9]="Longitude";
}
public void setInfo()
{
stringsInfo=new String[10];
stringsInfo[0]= this.getM_name();
stringsInfo[1]=this.getM_format();
stringsInfo[2]=this.getM_time();
stringsInfo[3]=this.getM_mode();
if(this.getM_image_width().equals("0")||this.getM_image_length().equals("0"))
{
stringsInfo[4]= "Unknown";
}else {
stringsInfo[4]= this.getM_image_width() + "x" + this.getM_image_length();
}
stringsInfo[5]= this.getM_size() ;
stringsInfo[6]= this.getM_orientation();
stringsInfo[7]=this.getM_path();
stringsInfo[8]=this.getM_gps_latitude();
stringsInfo[9]=this.getM_gps_longitude();
}
public SpannableString showInfoTEST()
{
setLable();
setInfo();
String string;
string = strings[0] + "\n"+ stringsInfo[0]+ "\n"+ " \n"
+ strings[1]+"\n"+ stringsInfo[1]+ "\n"+ " \n"
+ strings[2]+"\n"+ stringsInfo[2]+ "\n"+ " \n"
+ strings[3]+"\n"+ stringsInfo[3]+ "\n"+ " \n"
+ strings[4] +"\n"+ stringsInfo[4] + "\n"+ " \n"
+ strings[5]+"\n"+ stringsInfo[5]+ "\n"+ " \n"
+strings[6]+"\n"+ stringsInfo[6]+ "\n"+ " \n"
+strings[7]+"\n"+ stringsInfo[7]+ "\n"+ " \n"
+strings[8]+"\n"+ stringsInfo[8]+ "\n"+ " \n"
+strings[9]+"\n"+ stringsInfo[9]+ "\n"+" \n";
SpannableString ss = new SpannableString(string);
int curindex=0;
int curstring=0;
int curinfo=0;
for(int i=0;i<strings.length;i++)
{
curstring=strings[i].length();
curinfo= stringsInfo[i].length();
ss.setSpan(new ForegroundColorSpan(Color.WHITE), curindex, curindex+curstring+1,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curstring+1;
ss.setSpan(new ForegroundColorSpan(Color.rgb(31, 234, 189)),curindex, curindex+curinfo+1,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curinfo+1;
ss.setSpan(new AbsoluteSizeSpan(5),curindex, curindex+115,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new UnderlineSpan(),curindex, curindex+115,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+115;
}
return ss;
}
public SpannableString showInfoRight()
{
setLable();
setInfo();
String string;
string = strings[0] + "\n"+ stringsInfo[0]+ "\n"+ " \n"
+ strings[1]+"\n"+ stringsInfo[1]+ "\n"+ " \n"
+ strings[2]+"\n"+ stringsInfo[2]+ "\n"+ " \n"
+ strings[3]+"\n"+ stringsInfo[3]+ "\n"+ " \n"
+ strings[4] +"\n"+ stringsInfo[4] + "\n"+ " \n"
+ strings[5]+"\n"+ stringsInfo[5]+ "\n"+ " \n"
+strings[6]+"\n"+ stringsInfo[6]+ "\n"+ " \n"
+strings[7]+"\n"+ stringsInfo[7]+ "\n"+ " \n"
+strings[8]+"\n"+ stringsInfo[8]+ "\n"+ " \n"
+strings[9]+"\n"+ stringsInfo[9]+ "\n"+" \n";
SpannableString ss = new SpannableString(string);
int curindex=0;
int curstring=0;
int curinfo=0;
for(int i=0;i<strings.length;i++)
{
curstring=strings[i].length();
curinfo= stringsInfo[i].length();
ss.setSpan(new AbsoluteSizeSpan(20), curindex, curindex+curstring+1,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curstring+1;
ss.setSpan(new AbsoluteSizeSpan(15),curindex, curindex+curinfo+1,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curinfo+1;
ss.setSpan(new AbsoluteSizeSpan(5),curindex, curindex+2,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+2;
}
return ss;
}
public SpannableString[] showInfoList()
{
SpannableString[] res=new SpannableString[10];
setLable();
setInfo();
ForegroundColorSpan whiteColor=new ForegroundColorSpan(Color.WHITE);
ForegroundColorSpan infoColor=new ForegroundColorSpan(Color.rgb(31, 234, 189));
for(int i=0;i<res.length;i++)
{
int curindex=0;
res[i]=new SpannableString(strings[i] + "\n"+ stringsInfo[i]);
int curstring=strings[i].length();
int curinfo= stringsInfo[i].length();
res[i].setSpan(whiteColor, curindex, curindex+curstring,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curstring+1;
res[i].setSpan(infoColor,curindex, curindex+curinfo,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return res;
}
public SpannableString showInfo()
{
setLable();
setInfo();
String string;
string = strings[0] + "\n"+ stringsInfo[0]+ "\n"
+strings[1]+"\n"+ stringsInfo[1]+ "\n"
+ strings[2]+"\n"+ stringsInfo[2]+ "\n"
+ strings[3]+"\n"+ stringsInfo[3]+ "\n"
+ strings[4] +"\n"+ stringsInfo[4] + "\n"
+ strings[5]+"\n"+ stringsInfo[5]+ "\n"
+strings[6]+"\n"+ stringsInfo[6]+ "\n"
+strings[7]+"\n"+ stringsInfo[7]+ "\n"
+strings[8]+"\n"+ stringsInfo[8]+ "\n"
+strings[9]+"\n"+ stringsInfo[9];
SpannableString ss = new SpannableString(string);
int curindex=0;
int curstring=0;
int curinfo=0;
for(int i=0;i<strings.length;i++)
{
curstring=strings[i].length();
curinfo= stringsInfo[i].length();
ss.setSpan(new ForegroundColorSpan(Color.WHITE), curindex, curindex+curstring,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curstring+1;
ss.setSpan(new ForegroundColorSpan(Color.rgb(31, 234, 189)),curindex, curindex+curinfo,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curinfo+1;
}
// for(int i=0;i<strings.length;i++)
// {
// curstring=strings[i].length();
// curinfo= stringsInfo[i].length();
// ss.setSpan(new AbsoluteSizeSpan(20), curindex, curindex+curstring,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+curstring+1;
// ss.setSpan(new AbsoluteSizeSpan(15),curindex, curindex+curinfo,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+curinfo+1;
// ss.setSpan(new AbsoluteSizeSpan(1),curindex, curindex+1,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+2;
// }
return ss;
}
public SpannableString showInfo__()
{
setLable();
setInfo();
String string;
string = strings[0] + stringsInfo[0]+ "\n"
+ strings[1]+stringsInfo[1]+ "\n"
+ strings[2]+ stringsInfo[2]+ "\n"
+ strings[3]+ stringsInfo[3]+ "\n"
+ strings[4] + stringsInfo[4] + "\n"
+ strings[5]+ stringsInfo[5]+ "\n"
+strings[6]+stringsInfo[6]+ "\n"
+strings[7]+stringsInfo[7]+ "\n"
+strings[8]+stringsInfo[8]+ "\n"
+strings[9]+stringsInfo[9];
SpannableString ss = new SpannableString(string);
int curindex=0;
int curstring=0;
int curinfo=0;
for(int i=0;i<strings.length;i++)
{
curstring=strings[i].length();
curinfo= stringsInfo[i].length();
ss.setSpan(new ForegroundColorSpan(Color.WHITE), curindex, curindex+curstring,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new ForegroundColorSpan(Color.rgb(31, 234, 189)), curindex+curstring, curindex+curstring+curinfo,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
curindex=curindex+curstring+curinfo+1;
}
// for(int i=0;i<strings.length;i++)
// {
// curstring=strings[i].length();
// curinfo= stringsInfo[i].length();
// ss.setSpan(new AbsoluteSizeSpan(20), curindex, curindex+curstring,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+curstring+1;
// ss.setSpan(new AbsoluteSizeSpan(15),curindex, curindex+curinfo,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+curinfo+1;
// }
// for(int i=0;i<strings.length;i++)
// {
// curstring=strings[i].length();
// curinfo= stringsInfo[i].length();
// ss.setSpan(new AbsoluteSizeSpan(20), curindex, curindex+curstring,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+curstring+1;
// ss.setSpan(new AbsoluteSizeSpan(15),curindex, curindex+curinfo,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+curinfo+1;
// ss.setSpan(new AbsoluteSizeSpan(1),curindex, curindex+1,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// curindex=curindex+2;
// }
return ss;
}
public String getM_format()
{
if(m_format==null)
return "Unknown";
return m_format;
}
public void setM_format(String m_format)
{
this.m_format = m_format;
}
}