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

本文介绍在Android中如何使用自定义View进行简单的图形绘制,包括矩形、圆形、线条和文字等,并展示了如何通过代码和配置文件实现应用程序全屏显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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.MyView
		android:id="@+id/myView"
		android:layout_width="fill_parent"
    	android:layout_height="fill_parent"        
        />
            

</LinearLayout>


MyActivity.java

package 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.java


package 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);
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		canvas.drawColor(Color.BLACK);// 绘制黑色背景
		Paint paint = new Paint(); // 创建画笔工具
		paint.setColor(Color.RED);// 设置画笔工具颜色为红色
		// 绘制矩形,左上角x、y,右下角x、y
		canvas.drawRect(10, 10, 110, 110, paint);
		// 绘制字符串,x、y为字符串所占矩形的左下角坐标;
		canvas.drawText("这是字符串", 10, 130, paint);
		// 绘制矩形,左上角x、y,右下角x、y
		RectF rf1 = new RectF(10, 130, 110, 230);
		//根据矩形对象的大小和位置,绘制弧形,给出起始角度,和终止角度;逆时针
		canvas.drawArc(rf1, 0, 45, true, paint);
		//绘制直线,起点和终点坐标x、y
		canvas.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. */
	@Override
	public 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.java

package 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);
	}

	@Override
	protected 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" 即是只是设置成无标题状态。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值