2011-03-07 5 views
1

내 문제에 대한 배경 지식을 제공하기 위해이 문제에 많은 시간을 할애했지만 대부분의 질문은 내가 생각할 수있는 다양한 방법과 관련되어 있지만 대부분의 질문은 발생하지 않았습니다. 실제로 이것이 일어날 수있는 가장 쉬운 방법은 무엇이 될 것인지 물었습니다.Android, 배경을 변경하는 방법 동일한 활동 내에서의 색상

내가 수행 한 작업량을 표시하려면이 작업을 수행하는 여러 가지 방법을 시도하면서 게시 한 스택 오버플로 관련 질문을 참조하십시오. Help with Frame Animation Android

마지막으로 여기 How do I set the background to a solid color? When I use setContentView the screen is blank

    • 내가 해봤 것들의 일부입니다. 나의 초기 반응은 극도로 쉬울 것이므로 setContentView을 변경할 때마다 전화 할 수 있지만 분명히 그렇지 않습니다. 둘째, 나는 bacgkround와 다른 것들을 설정하고, 그 객체를 편집 해 보았습니다. 일하지 않았어. 다음 안드로이드가 제공 한 것들을 들여다 보았다.

      ViewFlippers : 나는 배경을 제외한 모든 것을 바꿀 수 있었다.

      상태 목록 Drawable : 나는 그것을 구현하는 데별로 좋지 않았습니다. 아마도 내 잘못이었을까요?

      프레임 별 애니메이션 : 알림 스택 오버플로 관련 질문이 있습니다 ... 더 필요하십니까?

      도없이 나는 는 코드의 3-5 라인을해야한다는 과제로 수행도 열심히 노력 야 깨달았다 말할 수 있습니다. 그래서 나는 제안을 요구하고있다.

  • 답변

    0

    내 솔루션은 사용자 지정보기 개체를 만드는 것입니다. 여기서 중요한 점은 onDraw 함수를 재정의하는 것입니다.이 함수는 단순히 캔버스에 원하는 색상을 그립니다. 정말 쉬워야합니다.

    액티비티 레이아웃 XML에서 ... 당신의 객체보기에서

    ...

    public class MyView extends View { 
        @Override protected void onDraw(Canvas canvas) { 
        canvas.drawColor(mColor); 
        } 
    
        private int mColor = 0xff000000; //black 
        public void SetColor(int aColor) { 
        mColor = aColor; 
        invalidate(); //Not sure about this line, can't remember if this is the correct call... there is a call that causes a redraw 
        } 
    } 
    

    을이 시도하고 당신이 여기 ... 질문이 몇 가지 포인터 있으면 알려 주시기 바랍니다. .. 당신의 활동 코드에서

    <your.package.name.ClassName 
        android:id="@+id/ClassName1" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"/> 
    

    ...

    @Override public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.yourxmllayoutfile); 
        MyView aMyView = (MyView) findViewById(R.id.ClassName1); 
        aMyView.SetColor(0xff00ff00); //Green I think, this line changes the color 
    } 
    

    행운을 빌어 요.

    +0

    좋아요, 지금까지 질문을 확인하는 시간이 없었습니다. 나는 그걸 가지고 놀아서 그것이 어떻게되었는지 알려줄거야. – Craig

    +0

    xml에 패키지와 클래스 이름이 필요한 이유를 설명해 주시겠습니까? 나는 xml 파일에 어떤 일이 일어나는지 이해하지 못한다. ID, 높이 및 레이아웃을 얻지 만 모든 작업을 수행하는 것으로 보이는 부분을 이해하지 못합니다. 또한 사용자 정의 java 뷰 파일의 클래스 이름을 참조하는 "클래스 이름"을 넣었을 때를 가정합니다. – Craig

    +0

    예 ...기본적으로 나의 예제에서는 사용자 정의 뷰 클래스 'MyView'를 호출했다. 나는 그것을 당신이 다른 것으로 부르기를 기대했기 때문에, 클래스를 자바 클래스 이름으로 바꾸는 것이 필요하다. Android SDK 내에 정의되지 않은 View 객체의 Pakage 이름을 지정해야합니다. – CatalystNZ

    관련 문제