android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/result"
android:padding="10px"
android:text="星座" />
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Info info=new Info();
if("".equals(((EditText)findViewById(R.id.birthday)).getText().toString())){
Toast.makeText(MainActivity.this,"请输入您的阳历生日,否则不能计算!",Toast.LENGTH_SHORT).show();
return;
}
String birthday=((EditText)findViewById(R.id.birthday)).getText().toString();
info.setBirthday(birthday);
Bundle bundle=new Bundle();
bundle.putSerializable("info",info);
Intent intent=new Intent(MainActivity.this,ResultActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}
Info.java
public class Info implements Serializable {
private static final long seriaVersionUID=1L;
private String birthday="";//生日
public String getBirthday(){
return birthday;
}
public void setBirthday(String birthday){
this.birthday=birthday;
}
}
这是一个计算星座的安卓应用,用户需要在页面中输入阳历生日,点击“确定”按钮后会跳转到另一个页面,展示用户的星座。
①探照灯效果
Aactivity_main.xml
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frameLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取布局文件中的帧布局管理器
FrameLayout ll=(FrameLayout) findViewById(R.id.frameLayout1);
ll.addView(new MyView(this));//将定义视图添加到帧布局管理器中
}
public class MyView extends View {
private Bitmap bitmap;//源图片,也是背景图片
private ShapeDrawable drawable;
private final int RADIUS=200;//探照灯半径
private Matrix matrix=new Matrix();
public MyView(Context context){
super(context);
Bitmap bitmap_source= BitmapFactory.decodeResource(getResources(),
R.drawable.source);//获取要显示的源图片
bitmap=bitmap_source;
BitmapShader shader=new BitmapShader(Bitmap.createScaledBitmap(
bitmap_source,bitmap_source.getWidth(),
bitmap_source.getHeight(),true), Shader.TileMode.CLAMP,
Shader.TileMode.CLAMP);//创建BitmapShader对象
//圆形的drawable参数
drawable=new ShapeDrawable(new OvalShape());
drawable.getPaint().setShader(shader);
drawable.setBounds(0,0,RADIUS*2,RADIUS*2);//设置圆的外切矩形
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
Paint p=new Paint();
p.setAlpha(50);
canvas.drawBitmap(bitmap,0,0,p);//绘制背景图片
drawable.draw(canvas);//绘制探照灯照射的图片
}
@Override
public boolean onTouchEvent(MotionEvent event){
final int x=(int) event.getX();//获取当前接触点的X轴坐标
final int y=(int) event.getY();//获取当前触摸点的Y轴坐标
//平移到绘制阴影的起始位置
matrix.setTranslate(RADIUS-x,RADIUS-y);
drawable.getPaint().getShader().setLocalMatrix(matrix);
//设置圆的外切矩形
drawable.setBounds(x-RADIUS,y-RADIUS,x+RADIUS,y+RADIUS);
invalidate();//重绘画布
return true;
}
}
}
这是一个实现探照灯效果的安卓应用,用户可以触摸屏幕,在屏幕上移动时,会显示一道光圈,模拟探照灯照射的效果。
②实现视频播放器
AndroidManifest.xml
MainActivity
public class MainActivity extends AppCompatActivity {
private static final String TAG="VideoView";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//不要标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置为全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//强制为横屏模式
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.activity_main);
final VideoView videoView=(VideoView) findViewById(R.id.VideoView01);
Button pauseButton = findViewById(R.id.PauseButton);
Button loadButton = findViewById(R.id.LoadButton);
Button playButton = findViewById(R.id.PlayButton);
loadButton.setOnClickListener(v -> {
videoView.setVideoPath("/sdcard/apple.mp4");
videoView.setMediaController(new MediaController(MainActivity.this));
videoView.requestFocus();
});
playButton.setOnClickListener(v -> {
Log.v(TAG,"start");
videoView.start();
Log.v(TAG,"start OK");
});
pauseButton.setOnClickListener(v -> {
videoView.pause();
});
}
}
activity_main.xml
android:id="@+id/VideoView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/LoadButton"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/LoadButton"
android:text="装载"
android:layout_x="30px"
android:layout_y="300px"
android:textSize="40dp"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/PlayButton"
android:text="播放"
android:layout_x="120px"
android:layout_y="300px"
android:textSize="40dp"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/LoadButton"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/PauseButton"
android:text="暂停"
android:layout_x="210px"
android:layout_y="300px"
android:textSize="40dp"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/PlayButton"/>
这是一个安卓视频播放器的实现,可以播放储存在设备上的视频文件。
这个App可以实现蓝牙发送消息、NFC传输数据、GPS定位以及短信功能,下面对其详细说明如下:
蓝牙发送消息功能
该功能可以让用户使用蓝牙技术连接到其他设备,并与其进行消息传输。在App中,用户可以打开该功能后搜索周围的蓝牙设备,并选择要连接的设备进行配对。当连接成功后,用户可以向其他设备发送消息,也可以接收其他设备发送来的消息。
NFC传输功能
该功能可以让用户使用近场通信(NFC)技术来传输数据。在App中,用户只需要打开该功能,将自己的设备靠近其他设备,让它们之间相距不超过4cm即可进行数据传输。
定位位置功能
该功能可以让用户获取当前设备的GPS定位信息,并显示出来。在App中,用户可以打开该功能后查看当前位置信息。
发送短信功能
该功能可以让用户输入一个电话号码并发送短信。在App中,用户只需要输入想要发送短信的号码,用户就可以向他/她发送短信。