EditText 글자를 입력할 때마다 사운드를 발생시키는 프로젝트


Sound + EditText


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package 패키지명;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.util.AttributeSet;
import android.widget.EditText;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
class SoundEditWidget extends EditText {
    SoundPool mPool = null;
    int mClick;
    public SoundEditWidget(Context context) {
        super(context);
        init(context);
    }
    public SoundEditWidget(Context context, AttributeSet attrs) {
        super(context, attrs);
        init(context);
    }
    public SoundEditWidget(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context);
    }
    void init(Context context) {
        mPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);
        mClick = mPool.load(context, R.raw.click, 1);
    }
    protected void onTextChanged(CharSequence text, int start, int before, int after) {
        if (mPool != null) {
            mPool.play(mClick, 11001);
        }
    }
}
 
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="문자를 입력하면 소리가 납니다."
        />
    <lhr.soundedit.SoundEditWidget
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        />
</LinearLayout>
 
cs



블로그 이미지

미네르바98

안드로이드와 영화 리뷰, 생활정보에 관한 내용을 기재합니다.

,