สำหรับ App นี้ประโยชน์ที่สำคัญกว่าเอาไว้ส่องสาวๆ คือ Source Code ที่มีหลาย Functions ที่สามารถนำไปประยุกต์ใช้กับงานของผู้อ่าน เช่น ตรวจสอบการเชื่อมต่อ Internet, QueryString, Imageview, Menu, Activity,Regex บลาๆๆ หาเอาใน Code ละกัน:D
Downloads : http://www.mediafire.com/?w6j7z9igndwiogb
MD5:fb291f3b17e940dc60f0af6ab6d3ff57
Sha1:66f8f3c896e1ec2344727f20d2357ed6a94158a0
Review:
Changelog :
0.เพิ่ม Function ตรวจสอบคณะที่ศึกษาอยู่(ยังไม่ 100%)
1.เพิ่ม Function check “-” (ต่อไปนี้จะใส่ – หรือไม่ใส่ก็ได้)
2.เพิ่มเมนู Save รูปไว้บน SDCard
3.เพิ่ม Function ตรวจสถานะการเชื่อมต่อ Internet
4.เพิ่ม Activity + Menu
5.เพิ่ม + แก้ไขอีกหลายอย่างลองดูจาก Code หรือทดสอบจากตัว App เอาละกัน 😀
6.เพิ่ม Presenter คนใหม่เป็นคนที่รหัส น.ศ. == 1 (อาจจะเป็นนักศึกษาคนแรกของ มข. รึป่าว ?)
Source Code:
1.)Main.java
// Author: MaYaSeVeN // Date: 16/4/2011 // Version: PicKKU 1.0 // Tested on: Google Nexus S package com.PicKKU; import com.PicKKU.R; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Main extends Activity { static EditText inputUrl; static Context context; public void onCreate(Bundle getpic) { super.onCreate(getpic); setContentView(R.layout.main); inputUrl = ((EditText) findViewById(R.id.editText1)); inputUrl.setSingleLine(); inputUrl.setTextSize(20); Button getImageButton = (Button) findViewById(R.id.button1); getImageButton.setOnClickListener(new OnClickListener() { public void onClick(View view) { Main.context = view.getContext(); if (isConnected() != true) { Toast.makeText(Main.this, "Can't connect to the Internet", Toast.LENGTH_SHORT).show(); } else if (inputUrl.getText().toString() .matches("(\\d{1,10})|(\\d{9}-\\d)")) { Intent i1 = new Intent(context, ShowPic.class); startActivityForResult(i1, 0); } else { Toast.makeText(Main.this, "Wrong student ID", Toast.LENGTH_SHORT).show(); } } }); } public boolean isConnected() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); return cm.getActiveNetworkInfo() != null; } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.menu2, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.exit: super.onDestroy(); super.finish(); return true; default: return super.onOptionsItemSelected(item); } } }
2.)ShowPic.java
// Author: MaYaSeVeN // Date: 16/4/2011 // Version: PicKKU 1.0 // Tested on: Google Nexus S package com.PicKKU; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import com.PicKKU.R; import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Environment; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.ImageView; import android.widget.Toast; public class ShowPic extends Activity { private InputStream is; private String link; private String id; private ImageView imgView; public void onCreate(Bundle getpic) { super.onCreate(getpic); setContentView(R.layout.showpic); id = "" + Main.inputUrl.getText(); link = "http://reg1.kku.ac.th/ephoto/getstudentimage.asp?id=" + id; link = checkInput(); imgView = new ImageView(Main.context); imgView = (ImageView) findViewById(R.id.imageView1); imgView.setImageDrawable(ImageOperations()); check_fac(id); } public void check_fac(String id) { if (id.length() > 9 && id.length() < 12) { if (id.substring(2, 5).equals("304")) { Toast.makeText(ShowPic.this, "Faculty of Engineering", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("308")) { Toast.makeText(ShowPic.this, "Faculty of HUSO", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("321")) { Toast.makeText(ShowPic.this, "Faculty of Management Science", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("506")) { Toast.makeText(ShowPic.this, "Faculty of Nursing", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("302")) { Toast.makeText(ShowPic.this, "Faculty of Medicine", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("321")) { Toast.makeText(ShowPic.this, "Faculty of Science", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("305")) { Toast.makeText(ShowPic.this, "Faculty of Education", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("315")) { Toast.makeText(ShowPic.this, "Faculty of Pharmacy", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("313")) { Toast.makeText(ShowPic.this, "Faculty of Dentist", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("316")) { Toast.makeText(ShowPic.this, "Faculty of Technology", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("303")) { Toast.makeText(ShowPic.this, "Faculty of Agriculture", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("309")) { Toast.makeText(ShowPic.this, "Faculty of Medical Technology", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("327")) { Toast.makeText(ShowPic.this, "Faculty of Medical Law", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("322")) { Toast.makeText(ShowPic.this, "Faculty of Medical Fine Art", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("329")) { Toast.makeText(ShowPic.this, "International College", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("328")) { Toast.makeText(ShowPic.this, "College of Local Administration", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("323")) { Toast.makeText(ShowPic.this, "Nongkhai Campus", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("311")) { Toast.makeText(ShowPic.this, "Faculty of Public Health", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("318")) { Toast.makeText(ShowPic.this, "Faculty of Veterinary Science", Toast.LENGTH_LONG).show(); } else if (id.substring(2, 5).equals("320")) { Toast.makeText(ShowPic.this, " Faculty of Architecture", Toast.LENGTH_LONG).show(); } else ; } else ; } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.layout.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.save: savePic(); Toast.makeText(this, "Save in sdcard", Toast.LENGTH_SHORT).show(); return true; case R.id.exit: super.onDestroy(); super.finish(); return true; default: return super.onOptionsItemSelected(item); } } private Drawable ImageOperations() { try { is = (InputStream) this.fetch(link); Drawable draw = Drawable.createFromStream(is, "src"); return draw; } catch (MalformedURLException ev) { ev.printStackTrace(); return null; } catch (IOException ev) { ev.printStackTrace(); return null; } } private void savePic() { try { File SDCardRoot = Environment.getExternalStorageDirectory(); File file = new File(SDCardRoot, id + ".jpg"); FileOutputStream fileOutput = new FileOutputStream(file); byte[] buffer = new byte[1024]; int bufferLength = 0; is = (InputStream) this.fetch(link); while ((bufferLength = is.read(buffer)) > 0) { fileOutput.write(buffer, 0, bufferLength); } fileOutput.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private Object fetch(String address) throws MalformedURLException, IOException { URL url = new URL(address); Object content = url.getContent(); return content; } private String checkInput() { if (id.length() > 9 && id.length() < 12) { if (link.lastIndexOf("-") != 61) { char last = link.charAt(61); link = link.substring(0, 61); link = (link + "-" + last); } } return link; } }
3.)AndroidManifest.xml
4.)main.xml
5.)showpic.xml
6.)menu.xml
7.)menu2.xml
8.)strings.xml
#Matches By @ptantiku