안드로이드 개발 질문/답변
(글 수 45,052)
일단 에러 로그입니다.
지금 개발중인 게임에서 죽고나면 점수로 랭킹에 점수를 올리려구하는데 EditText를 INVISIBLE했다가 죽게 되면 VISIBLE 하려고 합니다.
MyGameView.java:258 번줄 코드는
[code]
public void run() {
Canvas canvas = null;
while (bExit) {
try {
synchronized (mHolder) {
canvas = mHolder.lockCanvas(); // 캔버스 잠금 <<< 여기가 에러
//~~~~~~~~~~~~~
// 여기는 게임 코드 부분
//~~~~~~~~~~~~~
alertLayout.setVisibility(View.VISIBLE); //<<== 이놈 때문에 걸리는거 같습니다.
//<<== xml상에 존재하며 처음에 // INVISIBLE로 셋팅되어있습니다.
}
mHolder.unlockCanvasAndPost(canvas);// 캔버스 출력
} catch (Exception e) {
;
}
}
}
[/code]
============XML 부분 =========
파랑색 부분이 alertLayout 부분
[code]
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.wiz.polishwindownew.MyGameView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/mygameview"
android:layout_gravity="top" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/alertLayout"
android:layout_gravity="center"
android:background="#aaaaaa"
android:padding="5dp"
android:visibility="invisible">
<TextView
android:text="당신의 랭킹은 순위권 입니다 랭킹에 등록하시겠습니까?"
android:layout_height="wrap_content"
android:layout_width="200dp"
android:id="@+id/rangkingtext"
android:textColor="#000000"
android:layout_marginBottom="5dp" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="write nikname!"
android:id="@+id/editText1"
android:layout_marginBottom="10dp" />
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:text="YSE"
android:id="@+id/alertYesBtn"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="20dp" />
<Button
android:text="NO"
android:id="@+id/alertNoBtn"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="20dp" />
</FrameLayout>
</LinearLayout>
<FrameLayout
android:id="@+id/ControllUI"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="bottom">
<Button
android:text="clean"
android:id="@+id/allCleanWindow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"></Button>
</FrameLayout>
</FrameLayout>
[/code]
일단 한 엑티비티에 surfaceview 하나를 이용해서 만들고 있는데 surfaceview Thread 안에서 VISIBLE 하니 저 에러가 나더군요 ~ 그 밖에서 하면 에러는 안나는데 surfaceview에 punch 당하는지 보이지 않습니다. 제가 알기로 blend되어 보일꺼라 생각 했는데 아니더군요~ 하지만 안보이는 것일분 해당 부분 버튼이나 에디트텍스트 부분을 클릭할시 보이게 됩니다. 어떻게 된것일까요?




저도 같은 부분이 궁급합니다.
안보이는 상태에서 SurfaceView를 Invisible한후 다시 Visible 상태로 바꾸면 위젯이 보이긴 하지만
아무래도 그 사이 깜빡입니다.