android课程表的实现

//该代码段主要实现了课程表所要显示的基本布局

package com.example.android_draw;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class Mydraw extends View {
private Paint paintlinev=new Paint();
private Paint paintlineh=new Paint();
private Paint paintjia=new Paint();
private Paint paintnumber=new Paint();
private Paint painttext=new Paint();
private Paint paintselect=new Paint();
private float mousex,mousey;
private static boolean initflag=false;
private static boolean onTouchEventflag=false;
private static int spacew=0;
private static int spaceh=0;
private static int[] result=new int[2];
private Bitmap tianjia;
private String
public Mydraw(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public Mydraw(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}

public Mydraw(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
if(!initflag){
init();
}
drawbackground(canvas);
if(onTouchEventflag){
drawrectangle1(canvas);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
mousex=event.getX();
mousey=event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if(mousex>spacew){
result[0]=(int)((mousex-spacew)/(2*spacew));
onTouchEventflag=true;
}
result[1]=(int)(mousey/(spaceh));

break;
}
Mydraw.this.postInvalidate();
return true;
}

public void drawbackground(Canvas canvas){
canvas.drawLine(spacew, 0, spacew, 12*spaceh, paintlinev);
for(int i=1;i<13;i++){
canvas.drawText(i, spacew/2, spaceh*i*3/4, paintnumber);
}
for(int i=1;i<=12;i+=1){
canvas.drawLine(0, i*spaceh, spacew, i*spaceh, paintlineh);
}
for(int i=1;i<=12;i+=1){
for(int j=3;j<15;j+=2){
canvas.drawLine(j*spacew-2, i*spaceh, j*spacew+3, i*spaceh, paintlineh);

}
}
for(int i=1;i<=12;i+=1){
for(int j=3;j<15;j+=2){
canvas.drawLine(j*spacew, i*spaceh-2, j*spacew, i*spaceh+3, paintlinev);
}
}
}

private void drawrectangle1(Canvas canvas){
// Matrix matrix = new Matrix();
// matrix.preScale(space/tianjia.getWidth(), space/tianjia.getHeight(), result[0]*space, result[1]*space);
// canvas.drawBitmap(tianjia, matrix, paintjia);
canvas.drawBitmap(tianjia, result[0]*2*spacew+spacew, result[1]*spaceh,paintjia);
}
public void init(){
paintlineh.setColor(Color.BLACK);
paintlineh.setStrokeWidth(1);
paintlinev.setColor(Color.BLACK);
paintlinev.setStrokeWidth(1);
paintnumber.setColor(Color.BLACK);
paintnumber.setStrokeWidth(1);

tianjia=BitmapFactory.decodeResource(getResources(), R.drawable.tianjia);
int width=getWidth();
int height=getHeight();

spacew=width/15;

spaceh=height/12;

paintnumber.setTextSize((float) (0.75*height));
paintnumber.setTextAlign(Paint.Align.CENTER);
tianjia=BitmapFactory.decodeResource(getResources(), R.drawable.tianjia);
tianjia=Bitmap.createScaledBitmap(tianjia, 2*spacew, spaceh, false);
initflag=true;
}

}

//别的内容可以根据自己兴趣添加,下面是本人做的,仅供参考。

时间: 2024-10-07 07:50:29

android课程表的实现的相关文章

Android课程表的设计开发

Android课程表的设计开发 导语 实现了教务系统中课程的导入,分类显示课程.学期的修改,增加,修改.课程按照周的显示.课程修改上课星期和上课周.上课课程的自动归类. 一.主要功能界面 开发过程 一开始因为毕设有关课程表的要求不明,主要就是利用jsoup拉取学校教务管理系统的课程数据进行课程表界面的填充显示,并不能课程的个性化调整. 后来重新调整了需求,参考了超级课程表的功能.重新设计了实体类,利用bmob移动端云作为爬取到的数据的数据服务器进行了重新的开发. 主要代码 1.课程实体类 pac

android课程表控件、悬浮窗、Todo应用、MVP框架、Kotlin完整项目源码

Android精选源码 Android游戏2048 MVP Kotlin项目(RxJava+Rerotfit+OkHttp+Glide) Android基于自定义Span的富文本编辑器 android课程表控件效果源码 Dagger.Clean.MVP框架搭建,快速开发- Andorid 任意界面悬浮窗,实现悬浮窗如此简单 android模仿QQ登录后保存账号和密码效果源码 Android简洁清爽的Todo清单工具(MVP+okhttp3+retrofit+gson) Android优质博客 K

android 项目实战——超级课程表课表一键提取功能

如果你是在校大学生,或许你用多了各种课程表,比如课程格子,超级课程表.它们都有一个共同点就是可以一键导入教务处的课程.那么一直都是用户的我们,没有考虑过它是如何实现的.那么现在就来模仿一款"超级课程表". PS:由于超级课程表是商用软件,原本提取了一些图片,但是为了避免涉及侵权问题,所有图片均已使用一张绿色圆圈代替,背景图片也以颜色代替,缺乏美观,如果你觉得太丑,可以自己寻找图片代替. 那么说了这么久,先来看看这款高仿的软件长什么样子.本文的代码做过精简,所以界面可能有出入. 好了,界

Android实现一个简单的课程表

课程表要做复杂要考虑的东西很多,这里只说实现界面的一个简单的思路:ScrollView嵌套七个(一周七天)LinearLayout, 而每个LinearLayout又能封装成一个课程表View的ViewItem,都继承自FrameLayout.下面上代码: 首先是课程表每一天的item,现在默认一天是7节课,后面可设置成可拓展用代码实现,这里现在xml里写死: <?xml version="1.0" encoding="utf-8"?> <Line

Android动态生成课程表 详解

根据提供的课程信息,动态生成课程表.不同于网上流传的课表形式,课程节数是固定,本课表的课程节数不固定. 1.效果图 每天共有12节课,上课节数每天都不同. 2.布局文件代码 周一到周日是  7个竖直线性布局文件,其他皆为辅助标题或序号. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools

android五子棋游戏、资讯阅读、大学课程表、地图拖拽检测、小说搜索阅读app等源码

Android精选源码 Android 自动生成添加控件 android旋转动画.圆形进度条组合效果源码 一款很强的手机五子棋app源码 android地图拖拽区域检测效果源码 实现Android大学课表效果APP源码 android完全免费的小说搜索阅读app 一个互联网资讯阅读平台和良好的阅读体验的App Android优质博客 Android中高效的显示图片Bitmap的内存模型 相对于文字来说,图片的表达更直接.更有冲击力.更容易吸引用户的眼球.设计师们也理所当然的喜欢用图片来传达信息.

优秀的 Android 开源项目

摘要  转载http://www.trinea.cn/android/android-open-source-projects-view/,方便大家找到自己合适的资料 目录[-] 一.ListView 二.ActionBar 三.Menu 四.ViewPager .Gallery 五.GridView 六.ImageView 七.ProgressBar 八.其他 GitHub上优秀Android开源项目 3. Android开发神器 1.Xabber客户端 2.oschina客户端 3.手机安全

2016年最牛逼的分类Android项目源码免费一次性打包下载!

之前发过一个帖子,但是那个帖子有点问题我就重新发一个吧,下面的源码是我从今年开始不断整理源码区和其他网站上的安卓例子源码,目前总共有810套左右,根据实现的功能被我分成了100多个类,总共接近2.5G,还在不断更新.初学者可以快速方便的找到自己想要的例子,大神也可以看一下别人的方法实现.虽然的例子都是我一个人辛辛苦苦花了很多时间和精力整理的,但是既然这些例子是来自于社区那就让他们免费回归社区吧,(是的!特么的不要一分钱!最看不起那些挂羊头卖狗的)你可以在本帖里面按Ctrl+F查找你需要的关键字,

课程表

http://www.cnblogs.com/jycboy/p/kcbyl.html 超超boy 超级课程表原理解析(如何获取网页内容) 一直对手机怎么访问网页很好奇,比如网页上填的姓名密码之类的,在手机上怎么填上去,怎么把网页的内容解析完放在手机上.这次就手机访问教务系统举个简单的例子,相信看完你就懂啦,以后就可以随心所欲的解析网页啦. 君欲善其事,必先利其器.首先要准备两个工具:1.HttpWatch(网页数据分析工具,利用它抓取网页内容),2.一个Jar包:Jsoup(解析网页内容).有了