如何在我的应用程序上添加Material Design

时间:2014-10-28 14:05:35

标签: java android eclipse material

我有一个大问题。 使用Eclipse(我有Android 5.0的最新API和SDK),我试图用材料设计转换我的应用程序。问题是Eclipse似乎无法识别代码。 我会尽量详细说明: 这是我的主要代码:

主要Activity.java

public class MainActivity extends Activity implements OnClickListener {

private final static String RADIO_STATION_URL = "http://178.32.137.180:8665/stream";

private ProgressBar playSeekBar;

private Button buttonPlay;

private Button buttonStopPlay;

private MediaPlayer player;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    initializeUIElements();

    initializeMediaPlayer();
}

private void initializeUIElements() {

    playSeekBar = (ProgressBar) findViewById(R.id.progressBar1);
    playSeekBar.setMax(100);
    playSeekBar.setVisibility(View.INVISIBLE);

    buttonPlay = (Button) findViewById(R.id.buttonPlay);
    buttonPlay.setOnClickListener(this);

    buttonStopPlay = (Button) findViewById(R.id.buttonStopPlay);
    buttonStopPlay.setEnabled(false);
    buttonStopPlay.setOnClickListener(this);

}

public void onClick(View v) {
    if (v == buttonPlay) {
        startPlaying();
    } else if (v == buttonStopPlay) {
        stopPlaying();

    }
}

private void startPlaying() {
    buttonStopPlay.setEnabled(true);
    buttonPlay.setEnabled(false);

    playSeekBar.setVisibility(View.VISIBLE);

    player.prepareAsync();

    player.setOnPreparedListener(new OnPreparedListener() {

        public void onPrepared(MediaPlayer mp) {
            player.start();
        }
    });

}

private void stopPlaying() {
    if (player.isPlaying()) {
        player.stop();
        player.release();
        initializeMediaPlayer();
    }

    buttonPlay.setEnabled(true);
    buttonStopPlay.setEnabled(false);
    playSeekBar.setVisibility(View.INVISIBLE);

}

private void initializeMediaPlayer() {
    player = new MediaPlayer();
    try {
        player.setDataSource(RADIO_STATION_URL);
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    player.setOnBufferingUpdateListener(new OnBufferingUpdateListener() {

        public void onBufferingUpdate(MediaPlayer mp, int percent) {
            playSeekBar.setSecondaryProgress(percent);
            Log.i("Buffering", "" + percent);
        }
    });
}

@Override
protected void onPause() {
    super.onPause();


}


};

res / values

上的Styles.xml
<resources>

<!--
    Base application theme, dependent on API level. This theme is replaced
    by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="@android:style/Theme.Black">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
    <!-- All customizations that are NOT specific to a particular 
         API-level can go here. -->
</style>

</resources>

我试图遵循本指南 - &gt; http://android-developers.blogspot.gr/2014/10/appcompat-v21-material-design-for-pre.html但我在第一点之后被阻止,活动扩展到ActionBarActivity(已完成)...... 我可以帮忙吗?我只想将Material Design(黑色)应用到我的应用程序..有人可以帮助我吗? 我在这部分android中有点新,所以,非常详细。

1 个答案:

答案 0 :(得分:2)

您需要将项目中的依赖项添加到appcompatv7库,以支持比SDK 5.0更爱的设备上的Material设计

以下是如何在eclipse中设置appcompat库的说明:https://developer.android.com/tools/support-library/setup.html

之后你需要定义你的主题:

<style name="AppBaseTheme" parent="Theme.AppCompat">
</style>

以及您要扩展ActionBarActivity的所有活动:

public class MainActivity extends ActionBarActivity {
}