2011年11月27日

[PHP] 程式小技巧

[迴圈的使用]

//PHP3 or old
reset($attributes);
while (list($key, $value) = each($attributes)) {
    //do something
}
//PHP4
foreach ($attributes as $key => $value){
   //do something
}



[簡查重覆的資料]
SELECT username,COUNT(*)/*重複出現的次數*/ FROM member GROUP BY username HAVING COUNT(*) > 1 /*列出重複出現一次以上的資料*/

2011年11月24日

[Android] 取得檔案位置

package tw.Goocue;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Main extends Activity {
   @Override 
   public void onCreate(Bundle icicle)
   {
     // TODO Auto-generated method stub 
     super.onCreate(icicle);
        setContentView(R.layout.main);
        
        Button b = (Button)this.findViewById(R.id.b1);
        
        b.setOnClickListener( new OnClickListener(){
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                
                // 建立 "選擇檔案 Action" 的 Intent
                Intent intent = new Intent( Intent.ACTION_GET_CONTENT );
                
                // 過濾檔案格式
                intent.setType( "*/*" );
                
                // 建立 "檔案選擇器" 的 Intent  (第二個參數: 選擇器的標題)
                Intent destIntent = Intent.createChooser( intent, "選擇檔案" );
                
                // 切換到檔案選擇器 (它的處理結果, 會觸發 onActivityResult 事件)
                startActivityForResult( destIntent, 0 );
            }
        });
   }
   
   @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         
         // TODO Auto-generated method stub
         super.onActivityResult(requestCode, resultCode, data);
         
         // 有選擇檔案
         if ( resultCode == RESULT_OK )
         {
             // 取得檔案的 Uri
             Uri uri = data.getData();
             if( uri != null )
             {
               Cursor cursor = this.getContentResolver().query(uri, null, null, null, null);
                  cursor.moveToFirst();
                  
                  for (int i = 0; i < cursor.getColumnCount(); i++) {
                   
                   
                   setTitle( i+"-"+cursor.getString(1));
                   }
                 // 利用 Uri 顯示 ImageView 圖片
                // setTitle( uri.toString() );
             }
             else
             {
                 setTitle("無效的檔案路徑 !!");
             }
         }
         else
         {
             setTitle("取消選擇檔案 !!");
         }
     }

}

[PHP] 清除網頁快取



//變成Function
function nocache_headers() {
@ header('Expires: Thu, 01 Jan 1970 00:00:01 GMT');
@ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
@ header('Cache-Control: no-cache, must-revalidate, max-age=0');
@ header('Pragma: no-cache');
}
nocache_headers();

2011年10月2日

[Android]直向、橫向的設定


問題:
Android 螢幕的直向?橫向?




一、程式碼

Activity.java

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //強置為橫向
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //強置為直向
        

[Android] 動畫的實現





一、程式碼

Activity.java

package tw.G000E004;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class G000E004Activity extends Activity {
    Animation myanimation;
    ImageView img;
	
	/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        myanimation=AnimationUtils.loadAnimation(this, R.anim.myanim);
        img=(ImageView)findViewById(R.id.img);
        
        img.startAnimation(myanimation);
    }
}


myanim.xml(記得加入)


android:fillafter="false"
android:fromxscale="0.0"
android:fromyscale="0.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotx="50%"
android:pivoty="50%"
android:toxscale="1.4"
android:toyscale="1.4">
android:fromxdelta="30"
android:fromydelta="30"
android:toxdelta="0"
android:toydelta="50">
android:fromdegrees="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotx="50%"
android:pivoty="50%"
android:todegrees="+350">

main.xml(記得加入)

android:layout_width="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
android:layout_width="fill_parent"
android:text="@string/hello">
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/icon">


2011年9月25日

[PHP]在網頁中加入 Google Map

  1. [ 按此進入 ] Google Maps API Key申請頁面。
  2. 申請Google Mass API的網址填入
  3.  取得 Key。
  4. 最後會出現三個方塊,分別是你取得的 Key,你指定的 URL,以及一個範例。
  5. 將JavaScript需放至之間。

2011年8月28日

[Android]OnItemClick的使用方法

一、簡介
有人發問說「OnItemClick的使用方法,如何換頁」。
其實方式不難,我們需要了解的地方在於
(1)Activity 和 Activity 之間需要怎麼換頁和傳遞資料。
(2)OnItemClick的使用方式。

二、方法
(1)  Intent:Intent 有兩種基本的用法,似乎取決於使用者需要的是哪一種。

a.顯示的Intent
在建構Intent時已經指定接收者,類似函式調用的方式。


b.隱藏式的Intent
在建構Intent時並沒有指定接收者,之後在傳送。



(2)OnItemClick:一個監聽事件。當項目被點選時,就會啟動此函式。


三、程式碼

Activity.java

package tw.test2;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.Toast;

public class Test2Activity extends Activity {
	private Gallery gallery;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        gallery=(Gallery)findViewById(R.id.gallery);
        
        //希宣告一個類別,用來設定圖片資訊
        ImageAdapter imageAdapter=new ImageAdapter(this);
        
        //加入圖片
        Integer[] mImageIds={R.drawable.icon,R.drawable.ha};
        
        //設定圖片位置
        imageAdapter.setmImageIds(mImageIds);
        
        //圖片高度
        imageAdapter.setHeight(100);
        //圖片寬度
        imageAdapter.setWidth(200);
        
        gallery.setAdapter(imageAdapter);
        
        //當按下圖片時,所觸發的事件
        gallery.setOnItemClickListener(new OnItemClickListener(){

			@Override
			public void onItemClick(AdapterView parent, View view, int position,
					long id) {
				// TODO Auto-generated method stub
				Toast.makeText(Test2Activity.this, "您選的是第"+position+"張圖", Toast.LENGTH_LONG).show();
				
				//換頁
				Intent intent = new Intent();
				intent.setClass(Test2Activity.this, Report.class);
				/*
				 * 這邊是你要帶過去的資料
				 */
				intent.putExtra("test", "第二頁囉");
				startActivity(intent);
			}});
    }
}
ImageAdapter.java
package tw.test2;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    private Integer width;
    private Integer height;
    private Integer[] mImageIds;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView = new ImageView(mContext);
        //設定圖片來源
        imageView.setImageResource(mImageIds[position]);
        //設定圖片的寬、高
        imageView.setLayoutParams(new Gallery.LayoutParams(width, height));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        return imageView;
    }

    public Integer getHeight() {
        return height;
    }

    public void setHeight(Integer height) {
        this.height = height;
    }

    public Integer[] getmImageIds() {
        return mImageIds;
    }

    public void setmImageIds(Integer[] mImageIds) {
        this.mImageIds = mImageIds;
    }

    public Integer getWidth() {
        return width;
    }

    public void setWidth(Integer width) {
        this.width = width;
    }

    public int getCount() {
        return mImageIds.length;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }
}
Report.java
package tw.test2;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

public class Report extends Activity {
      /** Called when the activity is first created. */
 @Override
       public void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.report);
               
               Intent intent = this.getIntent();
               String showtest=intent.getStringExtra("test");
               
               Toast.makeText(Report.this,showtest.toString(), Toast.LENGTH_LONG).show();          
               
 }
}
記得加入(AndroidManifest.xml)