티스토리 뷰
SurfaceView xml에 특정부분만 추가하는 방법입니다.
SurfaceView 와 관련된 기본 내용은 아래 글을 참고하세요.
[Android] SurfaceView 기본 - https://injunech.tistory.com/326
아래와 같은 SurfaceView를 특정 View 에 일부분만 추가 하고 싶은 경우입니다.
MySurfaceView.java
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback {
....
}
res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_bg"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center" >
<RelativeLayout ...>
<RelativeLayout ...>
<RelativeLayout ...>
<com.example.work.MySurfaceView
android:id="@+id/MySurfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"/>
<RelativeLayout ...>
<RelativeLayout ...>
<RelativeLayout ...>
</LinearLayout>
위와 같이 Layout 설정 사이에 원하는 곳에 SurfaceView 값을 넣어 주면 됩니다.
MainActivity.java
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//SurfaceView background set transparent
MySurfaceView sfvTrack = (MySurfaceView)findViewById(R.id.MySurfaceView);
sfvTrack.setZOrderOnTop(true); // necessary
SurfaceHolder sfhTrackHolder = sfvTrack.getHolder();
sfhTrackHolder.setFormat(PixelFormat.TRANSPARENT);
}
}
SurfaceView를 포함한 xml layout 을 View에 설정.
SurfaceView 의 배경을 투명하게 하고 싶은 경우에는 setContentView 아래의 코드 추가하면 됩니다.
'Computer > Android' 카테고리의 다른 글
[Android] Touch, onInterceptTouchEvent, dispatchTouchEvent (0) | 2020.02.24 |
---|---|
[Android] View, ViewGroup (0) | 2020.02.24 |
[Android] SurfaceView 기본 (0) | 2020.02.18 |
EditText없이 View에서 소프트키보드 입력 받기 (0) | 2020.01.26 |
[Android] 나인패치 비트맵 만들기 (0) | 2019.10.06 |
댓글