技术标签: android
总体布局方面借鉴了微信的布局,主要有个人信息的显示和修改界面以及有关软件功能的一些其他布局。如下图所示,为信息模块主界面,点击个人信息区域,可以对个人信息进行修改。
主界面布局主要使用线性布局和相对布局设计,包含了管理个人信息模块、拍照上传模块、软件的相关说明模块、退出登入模块。下面是界面布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ebebeb">
<RelativeLayout
android:id="@+id/re_myinfo"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginBottom="18dp"
android:clickable="true"
android:layout_marginTop="16dp"
android:background="@drawable/btn_list_item_bg"
android:paddingBottom="8dp"
android:paddingTop="8dp">
<ImageView
android:id="@+id/iv_avatar"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginLeft="15dp"
android:src="@drawable/default_face"/>
<LinearLayout
android:id="@+id/ll_name"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginTop="12dp"
android:layout_toRightOf="@id/iv_avatar">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"
android:textColor="#353535"
android:textSize="16sp"/>
<TextView
android:id="@+id/yonghuxingming"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#353535"
android:textSize="16sp"/>
</LinearLayout>
<TextView
android:id="@+id/tv_fxid"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/iv_avatar"
android:text="账号:"
android:textColor="#AAAAAA"
android:textSize="14sp"/>
<TextView
android:id="@+id/dengruyonghu"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="55dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/iv_avatar"
android:textColor="#AAAAAA"
android:textSize="14sp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/re_xiangce"
android:layout_width="match_parent"
android:layout_height="65dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true"
android:paddingLeft="12dp">
<ImageView
android:id="@+id/iv_xiangce"
android:layout_width="26dp"
android:layout_height="26dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:src="@drawable/xiangji1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@id/iv_xiangce"
android:text="照片上传"
android:textColor="#353535"
android:textSize="16sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.2dp"
android:layout_alignParentBottom="true"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/re_aboutwe"
android:layout_width="match_parent"
android:layout_height="58dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true"
android:paddingLeft="12dp">
<ImageView
android:id="@+id/iv_shoucang"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:src="@drawable/about"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@id/iv_shoucang"
android:text="关于我们"
android:textColor="#353535"
android:textSize="16sp" />
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="20dp"
android:id="@+id/re_help"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true"
android:paddingLeft="12dp">
<ImageView
android:id="@+id/iv_money_bag"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:src="@drawable/help2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@id/iv_money_bag"
android:text="帮助与反馈"
android:textColor="#353535"
android:textSize="16sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.2dp"
android:layout_alignParentBottom="true"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="10dp"
android:id="@+id/tuichu"
android:layout_width="match_parent"
android:background="@drawable/btn_list_item_bg"
android:layout_height="48dp"
android:clickable="true"
android:paddingLeft="12dp">
<ImageView
android:id="@+id/iv_setting"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:src="@drawable/akf" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@id/iv_setting"
android:text="退出登入"
android:textColor="#353535"
android:textSize="16sp" />
</RelativeLayout>
</LinearLayout>
修改个人信息的界面如下图所示,这些信息的内容都是保存在数据库中,实现这一界面的功能无非就是实现数据库的增删查改,在连接数据库的过程中,需要特别注意要将电脑的防火墙关掉,否则,会连不上数据库,也可以通过发布的 WebServer进行数据的修改,本项目就是通过访问WebServer修改信息的。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@color/colorPrimary">
<ImageView
android:id="@+id/iv_back"
android:layout_width="40dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp"
android:scaleType="centerInside"
android:src="@drawable/top_back_icon" />
<View
android:id="@+id/view_temp"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:layout_toRightOf="@id/iv_back"
android:background="#14191A" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/view_temp"
android:text="修改资料"
android:textColor="#ffffff"
android:textSize="18sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/re_avatar"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="20dp"
android:background="@drawable/btn_list_item_bg">
<ImageView
android:id="@+id/iv_avatar"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="12dp"
android:src="@drawable/default_face" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="头像"
android:textColor="#353535"
android:textSize="16sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/re_name"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true">
<TextView
android:id="@+id/tv_temp_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="用户名"
android:textColor="#353535"
android:textSize="16sp" />
<EditText
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:layout_toRightOf="@id/tv_temp_name"
android:ellipsize="end"
android:gravity="right"
android:singleLine="true"
android:textColor="#AAAAAA"
android:textSize="14sp" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/re_sex"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="20dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true" >
<TextView
android:id="@+id/tv_temp_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="性别"
android:textColor="#353535"
android:textSize="16sp" />
<EditText
android:id="@+id/tv_sex"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:layout_toRightOf="@id/tv_temp_sex"
android:ellipsize="end"
android:gravity="right"
android:singleLine="true"
android:text="男"
android:textColor="#AAAAAA"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/re_region"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true" >
<TextView
android:id="@+id/tv_temp_region"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="单位"
android:textColor="#353535"
android:textSize="16sp" />
<EditText
android:id="@+id/tv_dianwei"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:layout_toRightOf="@id/tv_temp_region"
android:ellipsize="end"
android:gravity="right"
android:singleLine="true"
android:textColor="#AAAAAA"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/dianhua"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true">
<TextView
android:id="@+id/tv_temp_region1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="电话"
android:textColor="#353535"
android:textSize="16sp" />
<EditText
android:id="@+id/tv_dianhua"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:layout_toRightOf="@id/tv_temp_region1"
android:ellipsize="end"
android:gravity="right"
android:singleLine="true"
android:textColor="#AAAAAA"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/youxiang"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true">
<TextView
android:id="@+id/tv_temp_region2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="邮箱"
android:textColor="#353535"
android:textSize="16sp" />
<EditText
android:id="@+id/tv_youxiang"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:layout_toRightOf="@id/tv_temp_region2"
android:ellipsize="end"
android:gravity="right"
android:singleLine="true"
android:textColor="#AAAAAA"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/ziwei"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/btn_list_item_bg"
android:clickable="true">
<TextView
android:id="@+id/region3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="职位"
android:textColor="#353535"
android:textSize="16sp" />
<EditText
android:id="@+id/zhiwei"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"
android:layout_toRightOf="@id/tv_temp_region3"
android:ellipsize="end"
android:gravity="right"
android:singleLine="true"
android:textColor="#AAAAAA"
android:textSize="14sp" />
<View
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_alignParentBottom="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:background="#dadada" />
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="40dp">
<TextView
android:id="@+id/baocun"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"
android:layout_centerHorizontal="true"
android:textColor="#353535"
android:textSize="16sp"
android:background="@drawable/btn_class"/>
</RelativeLayout>
</LinearLayout>
下面是显示修改资料的代码,知识点主要是如何访问WebServer、解析Json数据以及线程的使用。
下图从底部弹出更换头像选项代码设计
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:orientation=“vertical” android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:gravity=“bottom”
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingBottom="20dp">
<Button
android:id="@+id/image_depot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/photo_camera_selector"
android:paddingBottom="10dip"
android:paddingTop="10dip"
android:textColor="@color/main_color"
android:text="@string/photo_select_image"
android:textSize="16sp" />
<View
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:background="@color/main_gray"
android:layout_width="match_parent"
android:layout_height="0.5dip"
/>
<Button
android:id="@+id/photo_camre"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/photo_camera_selector"
android:paddingBottom="10dip"
android:paddingTop="10dip"
android:text="拍照"
android:textColor="@color/main_color"
android:textSize="16sp" />
<Button
android:id="@+id/user_cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:background="@drawable/photo_camera_selector"
android:paddingBottom="10dip"
android:textColor="@color/main_color"
android:paddingTop="10dip"
android:text="取消"
android:textSize="16sp" />
实现修改信息代码
public class xiugaiziliao_activity extends Activity {
private static final int CUT_OK = 0x0013;
private static final int CAMERA_REQUEST = 0x0012;
private File tempFile;
private ImageView iv_avatar;
private ImageView iv_back;
private EditText tv_name;
private EditText tv_sex;
private EditText tv_dianwei;
private EditText tv_dianhua;
private EditText tv_youxiang;
private EditText zhiwei;
private TextView baocun;
//WebServer服务变量定义
private static String SOAP_ACTION="*******";
private static String NAMESPACE="**********";
private static String METHON_NAME="*********";
private static String URL="************";
private static String SOAP_ACTION1="***************";
private static String NAMESPACE1="****************";
private static String METHON_NAME1="*************";
private static String URL1="******************";
//获取登陆的用户和密码
private SharedPreferences sharedPreferences;
private String yonghuming;
private String mima;
private String[]sexArry=new String[]{
"男","女"};
private Handler handler=new Handler(){
public void handleMessage(android.os.Message msg)
{
if (msg.what==0)
{
String a=msg.obj.toString();
System.out.println("解析之前的数据----》》"+a);
Gson gson=new Gson();
Type listType=new TypeToken<LinkedList<JXuserinfo>>(){
}.getType();
LinkedList<JXuserinfo> jXuserinfos = gson.fromJson(a, listType);
for (Iterator iterator = jXuserinfos.iterator(); iterator.hasNext();)
{
JXuserinfo jXuserinfo=(JXuserinfo)iterator.next();
jXuserinfo.getPHONENUM();
jXuserinfo.getREALNAME();
jXuserinfo.getPOSTJOB();
jXuserinfo.getSEX();
jXuserinfo.getEMAIL();
jXuserinfo.getINSTITUTION();
jXuserinfo.getUSERNAME();
tv_sex.setText(jXuserinfo.getSEX());
tv_name.setText(jXuserinfo.getREALNAME());
tv_dianwei.setText(jXuserinfo.getINSTITUTION());
tv_dianhua.setText(jXuserinfo.getPHONENUM());
tv_youxiang.setText(jXuserinfo.getEMAIL());
zhiwei.setText(jXuserinfo.getPOSTJOB());
}
/* JXuserinfo jXuserinfo=gson.fromJson(a,JXuserinfo.class);
String b=jXuserinfo.getUSERNAME();
jXuserinfo.getEMAIL();
jXuserinfo.getINSTITUTION();
jXuserinfo.getPHONENUM();
tv_sex.setText(jXuserinfo.getSEX());
jXuserinfo.getPOSTJOB();
jXuserinfo.getREALNAME();*/
}
if (msg.what==1)
{
String t= msg.obj.toString();
if (t.equals("ok"))
{
Toast.makeText(getApplicationContext(),"保存资料成功",Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplicationContext(),"保存资料失败,请重新检查",Toast.LENGTH_SHORT).show();
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xiugaiziliao);
iv_avatar=(ImageView)findViewById(R.id.iv_avatar);
RelativeLayout re_sex=(RelativeLayout)findViewById(R.id.re_sex);
re_sex.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(xiugaiziliao_activity.this);
builder.setSingleChoiceItems(sexArry, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tv_sex.setText(sexArry[which]);
dialog.dismiss();
}
});
builder.show();
}
});
RelativeLayout re_avatar=(RelativeLayout)findViewById(R.id.re_avatar);
re_avatar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Dialog dialog=new Dialog(xiugaiziliao_activity.this);
View dialogView=View.inflate(xiugaiziliao_activity.this,R.layout.photo_choose_dialog,null);
dialog.setContentView(dialogView);
Window window=dialog.getWindow();
window.setWindowAnimations(R.style.main_menu_animstyle);
window.setGravity(Gravity.BOTTOM);
window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//设置点击事件
dialogView.findViewById(R.id.user_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.findViewById(R.id.image_depot).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent albumIntent=new Intent(Intent.ACTION_PICK);
albumIntent.setType("image//*");
startActivityForResult(albumIntent,1);
dialog.dismiss();
}
});
dialog.findViewById(R.id.photo_camre).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 拍照
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
// MediaStore.EXTRA_OUTPUT 调用系统拍完之后的照片,就会放到这个tempFile文件
getImageByCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));
startActivityForResult(getImageByCamera, CAMERA_REQUEST);
dialog.cancel();
}
});
dialog.show();
}
});
tempFile=new File(Environment.getExternalStorageDirectory(),"temp.png");
iv_back=(ImageView)findViewById(R.id.iv_back);
tv_name=(EditText)findViewById(R.id.tv_name);
tv_dianhua=(EditText)findViewById(R.id.tv_dianhua);
tv_dianwei=(EditText)findViewById(R.id.tv_dianwei);
tv_sex=(EditText)findViewById(R.id.tv_sex);
tv_youxiang=(EditText)findViewById(R.id.tv_youxiang);
zhiwei=(EditText)findViewById(R.id.zhiwei);
baocun=(TextView)findViewById(R.id.baocun);
baocun.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
sharedPreferences=getSharedPreferences("config", Context.MODE_PRIVATE);
yonghuming=sharedPreferences.getString("user","");
mima=sharedPreferences.getString("password","");
//获取控件的值
String a=tv_name.getText().toString();
String b=tv_sex.getText().toString();
String c=tv_dianwei.getText().toString();
String d=tv_dianhua.getText().toString();
String E=tv_youxiang.getText().toString();
String f= zhiwei.getText().toString();
SoapObject request=new SoapObject(NAMESPACE1,METHON_NAME1);
request.addProperty("loginusername",yonghuming);
request.addProperty("loginpassword",mima);
request.addProperty("realname",a);
request.addProperty("sex",b);
request.addProperty("institution",c);
request.addProperty("phonenum",d);
request.addProperty("email",E);
request.addProperty("postjob",f);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.bodyOut=request;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransportSE=new HttpTransportSE(URL1);
httpTransportSE.debug=true;
try{
httpTransportSE.call(SOAP_ACTION1,envelope);
}
catch (Exception e)
{
e.printStackTrace();
}
SoapObject object=(SoapObject)envelope.bodyIn;
String str=object.getProperty(0).toString();
System.out.println("zuihu服务返回数据---->"+str);
Message msg= handler.obtainMessage(1,str);
msg.sendToTarget();
}
}).start();
}
});
iv_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
new Thread(new Runnable() {
@Override
public void run() {
sharedPreferences=getSharedPreferences("config", Context.MODE_PRIVATE);
yonghuming=sharedPreferences.getString("user","");
mima=sharedPreferences.getString("password","");
SoapObject request=new SoapObject(NAMESPACE,METHON_NAME);
request.addProperty("loginusername",yonghuming);
request.addProperty("loginpassword",mima);
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.bodyOut=request;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransportSE=new HttpTransportSE(URL);
httpTransportSE.debug=true;
try{
httpTransportSE.call(SOAP_ACTION,envelope);
}
catch (Exception e)
{
e.printStackTrace();
}
SoapObject object=(SoapObject)envelope.bodyIn;
String str=object.getProperty(0).toString();
System.out.println("zuihu服务返回数据---->"+str);
Message msg= handler.obtainMessage(0,str);
msg.sendToTarget();
}
}).start();
}
private void clipImage(Uri uri){
Intent intent = new Intent("com.android.camera.action.CROP");
// 数据 uri 代表裁剪哪一张
intent.setDataAndType(uri, "image/*");
// 传递数据
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例,这里设置的是正方形(长宽比为1:1)
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 150);
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
// 你待会裁剪完之后需要获取数据 startActivityForResult
startActivityForResult(intent, CUT_OK);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode==RESULT_OK)
{
switch (requestCode){
case 1:
Uri uri=data.getData();
clipImage(uri);
break;
case CUT_OK:
Bundle extras=data.getExtras();
if (extras!=null)
{
Bitmap bitmap=extras.getParcelable("data");
iv_avatar.setImageBitmap(bitmap);
//上传图片到服务器,以file形式
//saveBitmapToFile(bitmap);
}
break;
case CAMERA_REQUEST:
clipImage(Uri.fromFile(tempFile));
}
}
}
}
拍照上传在前面提到,不在详细叙述。
主要是设计一个退出的对话框,设计代码和实现代码如下:
RelativeLayout tuichu=(RelativeLayout)getView().findViewById(R.id.tuichu);
tuichu.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
builder.setTitle("提示");
builder.setMessage("是否确定退出");
builder.setIcon(R.drawable.gantanhao);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent=new Intent();
intent.setClass(getActivity(),activity_login.class);
startActivity(intent);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alertDialog=builder.create();
alertDialog.show();
}
});
文章浏览阅读958次,点赞21次,收藏20次。Java目 录摘 要Abstract第一章 绪 论1.1选题背景1.2研究现状1.3研究内容第二章 开发工具及关键技术介绍2.1微信开发者工具2.2微信简介2.3小程序框架以及目录结构介绍2.4 JAVA技术2.5 Mysql数据库第三章 系统分析3.1需求分析3.2可行性分析3.2.1技术可行性:技术背景3.2.2经济可行性3.2.3操作可行性:3.3性能分析3.4系统操作流程3.4.1管理员登录流程3.4.2信息添加流程3.4.3信息删除流程第四章 系统设计与实现4.1系统架构设计。_#小程序://csdn社区/kfsdisda0bzkkbg
文章浏览阅读142次。Udacify 函数 继续学习 29%_学习《数据科学导论》的计划与方法
文章浏览阅读183次。前言作为一个iOS开发者,我觉得对于JavaScript入门还是并不是太困难,当然了,这只是入门而已,我们就从入门开始搞事.JavaScript的开始JavaScript作为一种轻量级的脚本语言,JavaScript是不会做类似于OC预编译的工作,我们需要把代码放入** <p id = 'label'>HelloWorld</p>然后我们在** <script > document.getElementById("label").innerH.._js 有跟oc一样的extension类别吗
文章浏览阅读211次。它的核心思想是将待排序的元素按照大小映射到一个计数数组中,并根据计数数组的结果重新排列原数组。计数排序算法的主要优点是稳定、快速、简单易懂,适用于大量数据范围较小的排序任务。接下来,程序通过循环遍历原数组,计算每个元素在序列中出现的次数,并将其存入对应的计数数组位置中。然后,程序累加计算每个元素在排好序的序列中的位置,根据计数数组重新排列原数组,最后返回排好序的新数组。总之,计数排序算法是一种高效、易于理解和实现的线性时间复杂度排序算法,特别适用于大规模数据范围较小的排序任务。,并首先找到数组中的最大值。_python 计数后按照个数排序
文章浏览阅读729次。visdom的安装排坑及远程启动visdom安装排坑visdom首次启动自动下载文件,种种原因导致下载往往失败,需要做一下处理:(1) 将'.../Anaconda/Anaconda/Lib/site-packages/visdom/server.py’的1917行注释掉(2) '.../Anaconda/Anaconda/Lib/site-packages/visdom/static’替换为[link](https://download.csdn.net/download/qq_35878757/_visdom 1917行注释
文章浏览阅读564次,点赞2次,收藏10次。CC, color conversion,色彩转换CC, color correction,色彩矫正CE, chroma enhancement,色度增强SNR,signal-to-noise ratio,信噪比SNR, skin noise reduce,肤色降噪STD, standard deviation,标准差OIS, optical image stabilization 光学稳像 PDAF,phase detection auto focus,相位对焦CPP: camera po_高通hjr是什么意思
文章浏览阅读3.5k次。 .NET Framework : 4.7.2 IDE : Visual Studio Community 2019 OS : Windows 10 x64 typesetting : Markdown blog : blog.csdn.net/yushaopu gi..._c# 筛选 两个条件的数量
文章浏览阅读1.4k次,点赞27次,收藏19次。遍历指定目录(包括子目录)下的所有JPG文件,写入txt文件_python读取某个路径里某种类型的文件
文章浏览阅读7k次。原文链接:https://www.lianxh.cn/news/547c05d012a2d.html目录1. GARCH 模型介绍 2. DCC-MGARCH 基本原理 3. 软件实现 3.1 R 语言命令 3.2 Stata 命令 4. DCC-MGARCH 模型的应用 5. 参考文献1. GARCH 模型介绍简单地说,多元 GARCH 指的是多个时间序列之间各自波动的交互影响,这里的波动具体指的是建立时间序列 ARIMA 或 VAR 模型后,提取到的各时间序列残差的波_dcc garch stata
文章浏览阅读1k次,点赞10次,收藏25次。毕业设计:基于深度学习的预约调度算法的电梯群控系统通过深度学习模型对乘客的出行数据进行学习,预测未来的电梯使用需求,并据此优化电梯的调度策略。为计算机毕业设计提供了一个创新的方向,结合了深度学习和计算机视觉技术,为毕业生提供了一个有意义的研究课题。对于计算机专业、软件工程专业、人工智能专业、大数据专业的毕业生而言,提供了一个具有挑战性和创新性的研究课题。无论您对深度学习技术保持浓厚兴趣,还是希望探索机器学习、算法或人工智能的领域的同学,能为您提供灵感和指导;_基于深度学习的电梯智能监控系统研究与设计
文章浏览阅读217次。下载v1.6版本,刚开始我还没找到,后面对照别人的截图才找到(哈哈,感觉自己好二),把鼠标移过去,这个地方是才从黑变成这个绿色。_freemodbus源码下载
文章浏览阅读2.8w次,点赞49次,收藏230次。 对于pytorch保存网络参数,大家一般可以看到有 .pkl文件 以及 .pth文件,对于这两者有什么区别,以及如何保存网络参数等,本文就好好讲述一下。 一、保存方式 首先我们知道不论是保存模型还是参数都需要用到torch.save()。_pytorch保存网络结构