學生黨一枚,前段時間因爲做東西需要,自學了一點Android,然後前段時間情人節突發奇想,自己做一個情人節表白的app,畢竟是初學者,做的很簡單,這裏只提供一個模板,文字、圖片、視頻大家可以根據需要自己更換,如果有喜歡的或者想用的話可以借鑑參考一下,祝大家好運,找到自己喜歡的那個人~
P.S. 新手上路,做的很簡單,除了網上找材料什麼的時間,很快就做出來了,僅製作了三個界面MainActivity、SecondActivity、VideoActivity,可能有一些地方代碼寫的不是很規範或者不太符合現在開發的一些寫法,如有什麼問題請大家批評指正,謝謝。
代碼壓縮包已放入百度網盤,如有需要自行下載:https://pan.baidu.com/s/1QQALADzeX0_riFIX0GHZ2w 提取碼:9cwz
自定義標題欄佈局
title_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@drawable/newbar">
<ImageView
android:id="@+id/ib_title_back"
android:layout_marginTop="14dp"
android:layout_width="24dp"
android:layout_height="28dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="12dp"
android:src="@drawable/white_back_button" />
<TextView
android:id="@+id/tv_title1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="115dp"
android:text="標題"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textColor="#AA049E"
android:textSize="25sp"
android:textStyle="bold"/>
</RelativeLayout>
noback_title_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@drawable/bar">
<ImageView
android:id="@+id/exitbutton"
android:layout_marginTop="14dp"
android:layout_width="22dp"
android:layout_height="28dp"
android:layout_alignParentLeft="true"
android:layout_marginLeft="330dp"
android:src="@drawable/exitbutton" />
<TextView
android:id="@+id/tv_title0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="115dp"
android:text="標題"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textColor="#FF8E3D"
android:textSize="25sp"
android:textStyle="bold"/>
</RelativeLayout>
MainActivity以及佈局
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/first"
android:orientation="vertical">
<include layout="@layout/noback_title_bar"></include>
<Button
android:id="@+id/btn_loginIn"
android:layout_width="164dp"
android:layout_height="46dp"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="90dp"
android:background="@drawable/login_buttonstyle"
android:text="Click to enter"
android:textSize="18dp"
android:textColor="#FFFFFF"
android:textStyle="bold">
</Button>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
MainActivity.java
package sdust.project.valentinesday;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
//標題欄處理文本
private TextView tv_title0;
//跳轉按鈕
private Button enterButton;
//處理退出程序的按鈕
private ImageView exitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//首先處理標題欄
tv_title0 = (TextView) findViewById(R.id.tv_title0);
tv_title0.setText("情人節快樂!");
tv_title0.setGravity(Gravity.CENTER);
enterButton = (Button)findViewById(R.id.btn_loginIn);
exitButton = (ImageView)findViewById(R.id.exitbutton);
enterButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
});
exitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog();
}
});
}
private void showDialog(){
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setIcon(R.drawable.tishi);
builder.setTitle("溫馨提示o(≧v≦)o");
builder.setMessage("點擊 EXIT 退出,謝謝觀看,愛你呦!");
builder.setPositiveButton("EXIT",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
});
AlertDialog dialog=builder.create();
dialog.show();
}
}
SecondActivity以及佈局
activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SecondActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gift_card">
<include layout="@layout/title_bar"></include>
<TextView
android:layout_marginTop="84dp"
android:layout_width="230dp"
android:layout_height="34dp"
android:layout_centerHorizontal="true"
android:text="Dear girlfriend:"
android:textSize="25dp"
android:textStyle="bold"
android:textColor="#5D2C09">
</TextView>
<TextView
android:layout_marginTop="122dp"
android:layout_width="230dp"
android:layout_height="350dp"
android:layout_centerHorizontal="true"
android:text="添加表白的文字"
android:textSize="25dp"
android:textColor="#5D2C09">
</TextView>
<Button
android:id="@+id/btn_video"
android:layout_marginLeft="230dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="90dp"
android:layout_width="66dp"
android:layout_height="46dp"
android:background="@drawable/login_buttonstyle"
android:text="點我!"
android:textSize="18dp"
android:textColor="#FFFFFF"
android:textStyle="bold">
</Button>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
SecondActivity.java
package sdust.project.valentinesday;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class SecondActivity extends AppCompatActivity {
//標題欄處理文本
private TextView tv_title1;
//返回主界面按鈕
private ImageView btn_backFirstPage;
//跳轉按鈕
private Button videoButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
//首先處理標題欄
tv_title1 = (TextView) findViewById(R.id.tv_title1);
tv_title1.setText("Greeting Card");
tv_title1.setGravity(Gravity.CENTER);
//獲得返回按鈕
btn_backFirstPage = (ImageView)findViewById(R.id.ib_title_back);
//跳轉播放頁面
videoButton = (Button)findViewById(R.id.btn_video);
//設置返回主界面按鈕
btn_backFirstPage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//跳轉播放視頻頁面
videoButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(SecondActivity.this, VideoActivity.class);
startActivity(intent);
}
});
}
}
VideoActivity以及佈局
activity_video.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/videobackground">
<include layout="@layout/title_bar"></include>
<RelativeLayout
android:layout_marginTop="56dp"
android:layout_width="match_parent"
android:layout_height="200dp">
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
<RelativeLayout
android:layout_marginTop="256dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ewm" />
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
VideoActivity.java
package sdust.project.valentinesday;
import android.graphics.PixelFormat;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.MediaController;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.VideoView;
public class VideoActivity extends AppCompatActivity {
//標題欄處理文本
private TextView tv_title1;
//視頻播放
private VideoView videoLocal;
//進度條
MediaController localMediaController;
//返回賀卡界面按鈕
private ImageView btn_backPage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.activity_video);
//首先處理標題欄
tv_title1 = (TextView) findViewById(R.id.tv_title1);
tv_title1.setText("Greeting Video");
tv_title1.setGravity(Gravity.CENTER);
//獲得返回按鈕
btn_backPage = (ImageView)findViewById(R.id.ib_title_back);
//視頻播放模塊
initLocalVideo();
//設置返回主界面按鈕
btn_backPage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
//播放本地視頻
private void initLocalVideo() {
//獲得視頻的id
videoLocal = (VideoView)findViewById(R.id.videoView);
//設置有進度條可以拖動快進
localMediaController = new MediaController(VideoActivity.this);
String uri = ("android.resource://" + getPackageName() + "/" + R.raw.love);
videoLocal.setVideoURI(Uri.parse(uri));
// 設置videoView和mController建立關聯
videoLocal.setMediaController(localMediaController);
// 設置mController和videoView建立關聯
localMediaController.setMediaPlayer(videoLocal);
// 讓VideoView獲取焦點
videoLocal.requestFocus();
videoLocal.start();
}
}
最終效果展示
情人節表白app展示.mp4