80,350
社区成员
发帖
与我相关
我的任务
分享
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mAlbumArtWorker = new Worker("album art worker");
mAlbumArtHandler = new AlbumArtHandler(mAlbumArtWorker.getLooper());
requestWindowFeature(Window.FEATURE_NO_TITLE);
// Get the current orientation
mIsLandScape = (getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE);
updateUI();
}
void updateUI() {
setContentView(R.layout.audio_player_with_lrc);
mLyricsFrame = (FrameLayout)findViewById(R.id.lyrics_frame);
mLrcMode = MusicUtils.getIntPref(this, "lyricMode",ScrollLrcView.LRC_MODE_SINGLE);
mScrollLrcView = (ScrollLrcView) findViewById(R.id.lyrics_view);
mScrollLrcView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
((ImageView) findViewById(R.id.lyrics_shift)).setOnClickListener (
new View.OnClickListener () {
public void onClick(View v) {
if (mLrcMode == ScrollLrcView.LRC_MODE_MULTIPLE) {
mLrcMode = ScrollLrcView.LRC_MODE_SINGLE;
} else if (mLrcMode == ScrollLrcView.LRC_MODE_SINGLE) {
mLrcMode = ScrollLrcView.LRC_MODE_MULTIPLE;
}
MusicUtils.setIntPref(MediaPlaybackActivity.this, "lyricMode", mLrcMode);
updateLyricsFrame();
try {
if (!mScrollLrcView.reSetupLyrics(
MediaPlaybackActivity.this, mLrcMode, (int)mService.position())) {
return;
}
} catch (RemoteException ex) {
throw new LrcScrollException();
}
mHandler.sendEmptyMessage(UPDATE_LRC);
}
}
);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// When configuration change, get the current orientation
mIsLandScape = (getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE);
// when configuration changed ,set mIsShowAlbumArt = true to update album art
mIsShowAlbumArt = true;
updateUI();
// When back to this activity, ask service for right position
mPosOverride = -1;
if (null != mScrollLrcView) {
mScrollLrcView.resetHighlight();
}
// Refresh action bar menu item
invalidateOptionsMenu();
}
如果在onConfigurationChanged中不调用 updateUI,怎切换时歌词显示正常,但横屏时用的还是竖屏布局。布局不对。原始的布局歌词显示是在最下面,而修改后的竖屏布局如下:
<FrameLayout
android:id="@+id/lyrics_frame"
android:layout_weight="1"
android:layout_below="@+id/linear1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical">
<LinearLayout
android:id="@+id/lyrics_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical">
<com.android.music.ScrollLrcView
android:id="@+id/lyrics_view"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:fadingEdge="vertical"
android:scrollbars="none" />
</LinearLayout>
<ImageView
android:id="@+id/lyrics_shift"
android:layout_width="0dip"
android:layout_height="45dip"
android:layout_gravity="center_horizontal"
android:layout_alignParentTop="true"
android:gravity="top"
android:focusable="false">
</ImageView>
<View
android:layout_width="0dip"
android:layout_height="1px"
android:background="#ffffffff">
</View>
</FrameLayout>
</RelativeLayout>
</RelativeLayout>