1

Как сменить программно MediaController? Я имею в виду play/pause/forward и rew.Изменение значков MediaController программно

enter image description here

Вы видите, я добавил полноэкранного кнопки, но не могу понять, как изменить эти три.

Пользовательского MediaController класс:

public class CustomVideoController extends MediaController { 
public static boolean full = false; 

private ImageButton fullScreenBtn; 
Context mContext; 
Activity activity; 
VideoView mVideoView; 

public CustomVideoController(Context context, Activity activity, VideoView videoView) { 
    super(new ContextThemeWrapper(context, R.style.VideoPlayerTheme)); 
    this.activity = activity; 
    mContext = context; 
    mVideoView = videoView; 
} 

@Override 
public void setAnchorView(View view) { 
    super.setAnchorView(view); 
    FrameLayout.LayoutParams frameParams = new FrameLayout.LayoutParams(
      LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    frameParams.gravity = Gravity.RIGHT | Gravity.TOP; 
    frameParams.setMargins(12,14,10,12); 

    View v = AddFullScreenBtn(); 
    addView(v, frameParams); 
} 

@Override 
public void hide() { 
    super.hide(); 
} 

@Override 
public void show(int timeout) { 
    super.show(0); 
} 

private View AddFullScreenBtn() { 
    fullScreenBtn = new ImageButton(mContext); 
    if (full) 
     fullScreenBtn.setImageResource(R.drawable.ic_media_fullscreen_stretch); 
    else 
     fullScreenBtn.setImageResource(R.drawable.ic_media_fullscreen_shrink); 
    fullScreenBtn.setBackgroundColor(Color.WHITE); 
    fullScreenBtn.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      if (full){ 
       fullScreenBtn.setImageResource(R.drawable.ic_media_fullscreen_stretch); 
       activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
       full = false; 
      } else { 
       fullScreenBtn.setImageResource(R.drawable.ic_media_fullscreen_shrink); 
       activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
       full = true; 
      } 
     } 
    }); 
    return fullScreenBtn; 
} 

Пожалуйста, помогите мне изменить для этих вводимого коэффициента иконок. Это вообще возможно? Я действительно смущен этим.

ответ

1

Если вы правильно поняли, используете android.widget.MediaControleller. В этом случае нет способа изменить кнопки макета. Вот почему (код ниже от MediaController.class):

/** 
    * Create the view that holds the widgets that control playback. 
    * Derived classes can override this to create their own. 
    * @return The controller view. 
    * @hide This doesn't work as advertised 
    */ 
    protected View makeControllerView() { 
     LayoutInflater inflate = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     mRoot = inflate.inflate(com.android.internal.R.layout.media_controller, null); 

     initControllerView(mRoot); 

     return mRoot; 
    } 

Как вы можете видеть, он использует частный метод для sutup и раздувать свое мнение.

+0

Но есть ли способ обмануть это или применить пользовательский макет? – AnZ

+1

@ ANZ Я так не думаю. Это готовый к использованию виджет, поэтому нет возможности его модифицировать, но вы можете посмотреть, как это делается и реализовать полностью собственный MediaController –

+0

, и если я заменил значки в SDK? – AnZ

Смежные вопросы