0
LinearLayout에서 사용자 정의보기를 사용하려고하지만 onDraw()가 호출되지 않습니다. 몇 가지 게시물을 읽었으나 서비스에서 뷰를 업데이트하는 방법을 설명하는 솔루션을 찾지 못했습니다.사용자 정의보기에서 onDraw가 호출되지 않았습니다.
내 서비스는 첨부 된 시각화기를 사용하여 미디어 플레이어를 제어합니다. Androids visualizer는 invalidate()를 호출하고 onDraw()가 호출 될 것을 기대하는 사용자 정의보기로 바이트 배열로 업데이트를보고하지만 결코 발생하지 않습니다.
MediaPlayer를 서비스 :
LayoutInflater layoutInflater = (LayoutInflater)
getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.player, null);
this.visualizerView = (VisualizerView) layout.findViewById(R.id.visualizerView);
...
this.visualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes,
int samplingRate) {
visualizerView.updateVisualizer(bytes);
}
public void onFftDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) {
}
}, Visualizer.getMaxCaptureRate()/2, true, false);
사용자 정의보기 클래스 :
public VisualizerView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void setValues(float[] values){
}
private void init() {
this.setWillNotDraw(false);
mBytes = null;
}
public void updateVisualizer(byte[] bytes) {
mBytes = bytes;
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
...
}
나는 미디어 플레이어 서비스를 시작하고 내 사용자 지정 시각 뷰의 인스턴스를 얻기 위해 조각을 사용하여 업데이트 이런 식으로하고있어
왜 레이아웃을 서비스에 적용합니까 ??? 그것이 속한 조각에서 해보십시오. – kiruwka