안드로이드 개발 질문/답변
(글 수 45,052)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/mainLayout">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
<LinearLayout android:layout_width="fill_parent" android:id="@+id/MenuPan" android:visibility="invisible" android:gravity="center" android:layout_height="200dp"> <TextView android:layout_width="wrap_content" android:text="Language" android:layout_height="wrap_content" android:id="@+id/LanguageMenu" android:textSize="30dp" android:layout_gravity="center_vertical" android:textColor="#00ff00"></TextView> </LinearLayout>
</LinearLayout>
제가 메뉴를 만들고 있는데요
View 와 TextView 를 이용했어요
View Touch Down 하면 TextView 가 나타나는 대요 , TouchUP 하면 사라지구요 ..
Down 한 상태에서 드래그 해서 이 TextView 에 다가가면
TextView에 대한 TouchListener를 쓰고 싶거든요 근데 안먹더라구요 ..
TextView가 맨위로 올라오지 않은 느낌이랄까..;
소스코드 한번 봐주세요
package showing.MenuItems.menuTesting01;
import android.app.Activity;
import android.content.Intent;
import android.opengl.Visibility;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class ShowMenuItems extends Activity implements OnInitListener {
int y;
View defaultView, MenuPan;
TextView menuItem;
Intent intent;
TextToSpeech tts;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
defaultView = findViewById(R.id.mainLayout); //R.layout.main의 아이디가 mainLayout 입니다.
MenuPan = findViewById(R.id.MenuPan); //메뉴아이템들을 붙일 리니어레이아웃으로 만든 메뉴판입니다.
menuItems= (TextView) findViewById(R.id.LanguageMenu); //TextView입니다
//액티비티에 기본적으로 붙인 mainLayout입니다
defaultView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
x =(int)event.getX();
y = (int)event.getY()-150;
System.out.println("aaaaaaaaaaaaaaaaaaaaaaaaaa");
MenuPan.layout(0, y, 320, y+300);
System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbbb");
MenuPan.setVisibility(View.VISIBLE);
return true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
MenuPan.setVisibility(View.INVISIBLE);
return true;
}
return false;
}
});
//나타난 TextView에 터치리스너를 하고 싶습니다 ㅜ
menuItems.setOnTouchListener(new OnTouchListener() { @Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
tts.speak("Language", TextToSpeech.QUEUE_FLUSH, null);
Toast.makeText(ShowMenuItems.this, "Languge MOTION EVENT",
Toast.LENGTH_SHORT).show();
return true;
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Toast.makeText(ShowMenuItems.this, "Language_ACTION_UP",
Toast.LENGTH_SHORT).show();
System.out
.println("new Intent(ShowMenuItems.this,LanguageSetting.class)");
return false;
}
return true;
}
});


