마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다이얼로그가 뜬것처럼 액티비티 반투명 효과를 주려고합니다만...Fragment에서는 어찌해야될까요?

0 추천

Fragment 안에 있는 버튼을 클릭시 다이얼로그가 뜬것처럼 뒷 배경이 반투명효과가 나타나야되는데 어떻게 해야될지 모르겠습니다... 구글링으로 검색해보면 Activity에서만 가능한 소스인듯 보입니다...적용이 안되네요

 

해결방법좀 알려주세요 ㅠ 

아직도초보 (3,030 포인트) 님이 2014년 4월 23일 질문

2개의 답변

+2 추천
 
채택된 답변
마피 (2,970 포인트) 님이 2014년 4월 23일 답변
아직도초보님이 2014년 4월 23일 채택됨
변화가 없네요...ㅠㅠ

onCreateView 안에다 아래와 같이 써주면 되야되는거 아닌가요..?

public View onCreateView(LayoutInflater layoutinflater, ViewGroup container, Bundle savedInstanceState) {
        getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,                   WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
...
}
protected View mView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    mView = inflater.inflate(R.layout.aadfasdfad, null);

    return mView;
}

public void onClickListener()
{
    //위 링크한 곳에서 Bitmap newImg; 까지 비슷하게 코딩한 후에

    mView.setBackground(new BitmapDrawable(newImg));
}

지금 BitmapDrawable(Bitmap bitmap)이 deprecated되어있는데
BitmapDrawable(Resources res, Bitmap bitmap) 를 사용해보세요.
사용법은 저도 몰라서 구글링을...
요건 해봤더니 mView 안에서의 레이아웃을 블러시키는방법이네요...ㅠㅠ
요건 view보다 윗단(상단바) 는 적용이 안되서....
Dialog는 뜨면 다이얼로그 빼고 다른배경 전체가 약간 어두워지는데 그걸 하고싶은거라서...ㅠㅠ 이해가 되셨나 모르겠네요 ㅠㅠ
그런거라면 제가 제일 처음 적은 답변대로 하세요.

님이 만드신 Fragment Layout.xml파일의 최상위 Layout을 FrameLayout으로 한꺼풀 더 높게 하셔서 그 FrameLayout안에 님이 현재 해놓은 Layout을 그대로 넣어넣고 그 Layout아래에다가
<LinearLayout
    android:width~~~~~ height~~~~~~
    android:id="@+id/test"
    android:background="#78000000"
    android:visibility="invisible" />
이거 추가한 뒤에
///////////////////////////////////////////////////////////////////////////////////////////////////////
protected View mView;
protected View mTest;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    mView = inflater.inflate(R.layout.aadfasdfad, null);
    mTest = mView.findViewbyId(R.id.test);
    return mView;
}

public void onClickListener()
{
    mTest.setVisibility(View.VISIBLE);
    //상단바도 원하면getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,                   WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
}

대충 이런식으로 하면 될거같은데
댓글감사합니다~ 다이얼로그 형태로 바꿔서 해결했습니다 ㅠㅠ 원하던대로 해결하지 못해 못내 찝찝하군요...ㅠㅠ
적극적인 댓글 감사드립니다!
+2 추천
aucd29 (218,390 포인트) 님이 2014년 4월 23일 답변
댓글감사합니다! 그냥 다이얼로그 형태로 바꿔서 해야되겠어요....감사합니다!
...