技术标签: 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();
}
});
文章浏览阅读1.7w次,点赞11次,收藏26次。报错的原因:通俗解释:本地的JDK版本和IDEA默认的JDK不匹配三、解决办法:把这个默认使用的JDK5版本改成我们当前使用的JDK的版本就好了。在maven web项目上面要部署运行tomcat时候,会出现这个问题。(1)官方解释:这个错误消息表明你正在使用的Java版本过低,不能支持程序的运行。具体来说,你正在使用的版本是5,而程序需要更高版本的Java才能运行。建议更新Java到较新版本,以确保程序能够运行_java: 错误: 不支持发行版本 5
文章浏览阅读379次,点赞5次,收藏10次。问题是学习的先导,教师的有效提问能够激发学生的学习兴趣,调动学生积极思考,当提问指向疑惑处、关键处和思考处时,既为学生指明思考的方向,提供思考的空间,又能引发学生深入思考,提升学习的深度和广度。在《摸球游戏》一课的教学中,一位男生连着6次都摸出了黄球(盒内装有形状、大小相同,质量相等的球,每次摸球都摇匀再摸),学生一片欢呼,都认为他再次摸出的一定也是黄球。聚焦学生的思考处,教师通过提问引发学生深度思考,不仅帮助学生充分利用已有的旧知来学习新知,而且使学生学会学习,有利于学生在今后的数学学习中进行运用。
文章浏览阅读1.2k次。解决jupyter一直显示内核准备中....maybe helpful:)_jupyter内核正在启动,请等待
文章浏览阅读1.4k次。一、数据流分析1.1 介绍原理:数据流分析的原理可参考这些文章 Useful Literature。说明:phasar提供了很多复杂机制,以便于用户自定义数据流分析。用户针对自己的需求,选择最合适的接口,用户只需要提供一个新类,即可实现该接口缺少的功能,该功能可作为分析的问题描述。将具体问题描述交给求解器求解,以下将列出多种数据流求解器。(1)选择控制流图首先需选择一种控制流图,以基于此图进行分析,如CFG (intra-procedural control-flow graph) 或 ICFG _phasar框架
文章浏览阅读1.8k次。声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!Metasploit实验:制作免杀payload+对任意“外网”主机的远控这个试验的实现需要拆分成下面三个模块:内网穿透到外网制作免杀木马后门Metasploit控制客户机环境准备操作系统用途IP地址需要软件Kali制作payl..._metasploit内网穿透
文章浏览阅读230次。605. 简单乘积//C++版本 #include <bits/stdc++.h>using namespace std;int main(){ int a,b,X; cin>>a>>b; X=a*b; printf("PROD = %d",X); return 0;}#python版本a=int(input())b=int(input())print("PROD = %d"%(a*b))611. 简单计算/_"print(\"volume = %.3f"
文章浏览阅读2.2k次。关系型数据库与图数据库比较关系型数据库是基于实体建模理念设计。 该设计理念并没有提供对这些实体间关系的直接支持。 在需要描述这些实体之间的关系时,我们常常需要创建一个关联表以记录这些数据之间的关联关系,而且这些关联表常常不用来记录除外键之外的其它数据。也就是说,这些关联表也仅仅是通过关系型数据库所已有的功能来模拟实体之间的关系。 这种模拟导致了两个非常糟糕的结果:数据库需要通过关联表间接地维护实..._关系型数据库 图数据库
文章浏览阅读1w次,点赞12次,收藏13次。vue3.0发布后,在双向数据绑定这里,使用proxy代替了object.defineProperty,众所周知,obj.defineProperty是对对象属性监听,循环对象,一个个属性监听,proxy是对一整个对象进行监听。而proxy的一大优势就是可以监听数组。此帖用来记录自己对proxy的调研理解。1,proxy的基本理解proxy是es6中的语法,最为代理的功能,当外接要访问对象的时候,proxy可以做一层拦截,并且可以对这个proxy代理进行操作,进而实现对对象的操作。如:var prox_proxy为什么能监听数组变化
文章浏览阅读3.3w次。下载地址_my app电脑版
文章浏览阅读7.4k次,点赞7次,收藏74次。背景:网络传输层中,一般采用TCP协议,如果要建立连接,客户端会先发送syn包请求,服务器接收,接收后,再传递给客户端ack,syn包,这个时候,客户端再次回应,传回ack包。可是问题就出在,如果我是客户端,只发送一个请求syn包,然后第三次握手的时候,不再往回传ack包,此时服务端是不是就要等待?在等待的时间里,我是不是可以伪造更多的请求,从而不断消耗服务器的资源,..._怎么用python给tcp协议的ip和端口做ddos
文章浏览阅读476次,点赞14次,收藏10次。先给友友们交代一下个人背景:楼主22年毕业于一所985,大三下的时候在字节跳动实习过小半年,毕业后选了阿里巴巴的Offer,担任前端开发工程师的职位,尔来也有1年半的光载。
文章浏览阅读1.2k次,点赞2次,收藏6次。【代码】[Errno 2] No such file or directory: ‘:/usr/local/cuda-11.7:/usr/local/cuda-11.7/bin/nvcc‘_warnings.warn(msg.format('we could not find ninja.'))