Android中简单图形绘制,及全屏设置

来源:互联网 发布:淘宝评价排序规则 编辑:程序博客网 时间:2024/06/07 02:47

 

Android中简单图形绘制,及全屏设置

下面的代码是参考《Android2.0游戏开发实战宝典》

main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <com.hm.main.MyViewandroid:id="@+id/myView"android:layout_width="fill_parent"    android:layout_height="fill_parent"                />            </LinearLayout>MyActivity.javapackage com.hm.main;import android.app.Activity;import android.os.Bundle;public class MyActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}



 

MyView.javapackage com.hm.main;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.util.AttributeSet;import android.view.View;public class MyView extends View {// 在xml中配置该view应用,必须实现此构造器;public MyView(Context context, AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.BLACK);// 绘制黑色背景Paint paint = new Paint(); // 创建画笔工具paint.setColor(Color.RED);// 设置画笔工具颜色为红色// 绘制矩形,左上角x、y,右下角x、ycanvas.drawRect(10, 10, 110, 110, paint);// 绘制字符串,x、y为字符串所占矩形的左下角坐标;canvas.drawText("这是字符串", 10, 130, paint);// 绘制矩形,左上角x、y,右下角x、yRectF rf1 = new RectF(10, 130, 110, 230);//根据矩形对象的大小和位置,绘制弧形,给出起始角度,和终止角度;逆时针canvas.drawArc(rf1, 0, 45, true, paint);//绘制直线,起点和终点坐标x、ycanvas.drawLine(150, 10, 250, 110, paint);RectF rf2 = new RectF(150, 130, 250, 230);canvas.drawOval(rf2, paint);//根据矩形绘制圆}}


 

这里是参考himi的代码:

转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/263.html

 

MyActivity.java package com.hm.main;import android.app.Activity;import android.os.Bundle;import android.view.Window;import android.view.WindowManager;public class MyActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 隐去电池等图标和一切修饰部分(状态栏部分)// this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,// WindowManager.LayoutParams.FLAG_FULLSCREEN);// 隐去标题栏(程序的名字)// this.requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(new MyView(this));}}

 

对于设置全屏,主要就两点:

 一点是设置隐去状态栏部分,包括电池等图标,第二点无疑就是把我们应用的名字也隐去不显示,这样一来就全屏了

 

但要注意的是:在代码中设置的话,设置无标题和设置全屏的两段代码要放置在 setContentView(R.layout.main); 这段代码的前面。要不然会报错。

 

MyView.javapackage com.hm.main;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.RectF;import android.view.View;public class MyView extends View {private Paint paint;public MyView(Context context) {super(context);paint = new Paint();paint.setAntiAlias(true);// 设置画笔无锯齿(如果不设置可以看到效果很差)this.setKeepScreenOn(true);// 设置背景常亮paint.setColor(Color.RED);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.WHITE);// 设置刷屏颜色// 这里最后两个参数不是宽高、而是矩形右下角的坐标Rect rect = new Rect(30, 30, 50, 50);canvas.drawRect(rect, paint);//RectF 只是矩形 float形式 只是跟Rect精确度不一样 RectF rectF = new RectF(70f, 30f, 90f, 90f);canvas.drawArc(rectF, 0, 360, true, paint);//这也是画圆 第三个参数为半径 canvas.drawCircle(150, 30, 0, paint);float[] points =new float[]{200f,10f,200f,40f,300f,30f,400f,70f};         canvas.drawLines(points, paint); // canvas.drawLines(points, 1, 4, paint);//选取特定点数组中两点来画出一条直线        canvas.drawText("Himi", 230, 30, paint); }}


asd

AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.hm.main"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="7" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >                <activity            android:name=".MyActivity"            android:label="@string/app_name"             android:theme="@android:style/Theme.NoTitleBar.Fullscreen"            >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>


设置全屏也可以在AndroidManifest.xml中定义:
 

在相应的Activity中节点中添加属性:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 即可以设置某个Activity全屏显示。若设置成 android:theme="@android:style/Theme.NoTitleBar" 即是只是设置成无标题状态。

 

 

 

 

原创粉丝点击