I know that there is already some apps can do this, such as:
I want to know how to do this in my app? What classes I can use? Or what articles I should read? I don't want to change the Android's source code.
And I wonder if it will be different to deal with when the screen is locked by draw pattern?
Have a look at this answer. You need to write your own home screen app which will implement the lockscreen behaviour that you require. There is sample code for writing your own home screen app in the Android SDK.