`

Android java代码布局的activity

 
阅读更多

知道activity总要有一个xml的布局文件相对应,但如果没有这个xml 而用Java 直 接在代码中简单实现,也就是说,这个负责布局的xml 现在我不在写他。而是直接有java帮助我们生成,有些朋友会问,有这个必要么,自己单写个java 类实现不和xml 布局是同样的功能。但实际上,很多时候我们的界面不是完全不变的,如果一个view 中出现了大量的变化,那原来的xml 也就成了鸡肋。而且一旦我们想要将写好的一个activity自己封装成JAR包,这时多余的xml 很可能就变成了累赘。为解决这个问题,自己做了一点测试。感觉效果能简单的解决这个问题,所以发出来,大家权当参考。

在一个activity中在重写的 onCreate 方法里,我们必须将布局文件指定进来 setContentView(R.layout.XXXX ); 现在我们将这个指定的xml 放弃。

java代码:

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class IndexActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		newView view = newView.buildView(IndexActivity.this);
		// 原来需要指定xml的地方,换成创建相应布局的对象
		setContentView(view);
		Resources res = getResources();
		// 指定加载的图片
		Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.back_1);
		BitmapDrawable bmp1 = new BitmapDrawable(bmp);
		view.imageView.setImageDrawable(bmp1);
	}

	// 这里实验了LinearLayout布局,其他的布局暂时没做尝试,不过基本原理类似
	static class newView extends LinearLayout {
		private ImageView imageView;

		public newView(Context c) {
			super(c);
			/*
			 * 这里只创建了个ImageView 同理,如TextView EditText Button
			 * 等等都在这里创建最后只要添加到addView()中即可,补充下, 这里创建的布局规则同
                         *xml布局时的规则相同。
			 */
			imageView = new ImageView(c);
			/*
			 * 可以设定多种参数如大小,高度,颜色等等, 这些方法在android提供的api中很容易
                         * 找到,这里列出几种常用的
			 *  TextView mTitle = new TextView(c); 
			 * //添加文字 
			 * mTitle.setText(title); 
			 * //居中
			 * mTitle.setGravity(Gravity.CENTER); 
			 * //字体颜色
			 * mTitle.setTextColor(Color.WHITE);
		         *
			 * addView实际有多种构造方法,对于位置变化的需求, 需要自己添加这里举例一个常用的
			 * addView(mTitle, new LinearLayout.LayoutParams( 
                         * LayoutParams.WRAP_CONTENT,
			 * LayoutParams.WRAP_CONTENT,Gravity.CENTER_HORIZONTAL));
			 */
			addView(imageView);
			/*
			 * 对于LinearLayout本身的属性设置, 我们直接利用继承后提供的方法,直接传参数即可
			 * 如:setBackgroundResource(imgId); setPadding(0, 8, 0, 8);等
			 */
		}

		public static newView buildView(Context c) {
			return new newView(c);
		}
	}
}
 
分享到:
评论

相关推荐

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    Android Studio初学者相册图片浏览器教程Java代码

    通过制作图库APP熟悉activity及页面布局的相关内容,适合初学者掌握activity跳转 大学生作业考核参考

    Android新建Activity的方法

    二、在res/layout目录下新建一个布局xml文件,文件名随意(只能包含小写字母数字或下划线),用来设置新Activity的布局(对于如何设置Activity的布局,可参考本站相关内容)。 三、打开AndroidManifest.xml文件,在...

    android Activity线性布局和表格布局实例讲解

    实验中只需要编写相应的xml的代码,java代码不需要更改,因为我们这里只是练习android的界面设计。线性布局:线性布局就是将各种控件按照行或者列依次进行排列。其中本实验用到的各控件的属性解释如下:android:...

    Android高级编程--源代码

    该资料是《Android高级编程》的源代码 对应的书籍资料见: Android高级编程 基本信息 原书名: Professional Android Application Development 原出版社: Wrox 作者: (英)Reto Meier 译者: 王鹏杰 霍建同 出版社...

    谈谈Android里的Context的使用

    这里MainView.java使用的布局main.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_...

    android开发期末大作业.zip

    (包括布局、组件、Activity、Intent等使用) 数据存储的使用 分值10 网络功能 分值10 Service、ContentProvider或BroadCastReceiver等的使用 分值10 附加分: 图形图像处理...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    Android开发应用实战详解源代码

    5.12.2 java i/o基本类库介绍 5.12.3 具体实现 5.13 获取file和cache的路径 5.14 wi-fi服务 5.14.1 wi-fi简介 5.14.2 实现原理 5.14.3 具体实现 5.15 获取sim卡内信息 5.15.1 sim卡简介 5.15.2 实现原理 5.15.3 ...

    Android开发相关的学习资料

    03-Android UI设计与Activity组件_实验06-Android UI设计与常用布局.pdf、实验07-Android组件.pdf、实验08-Android UI&Activity实例.pdf、实验09-Android RecyclerView动态布局加载.pdf; 04-Android基础功能程序...

    Android2.0源代码

    2.Java代码 package com.wjq; import android.app.Activity; import android.content.pm.ActivityInfo; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.os...

    Android从Fragment跳转到其他Activity的简单实例

    第一步:简单编写布局文件fragment_activity.xml和抽象类TemplateFragmentActivity.java代码如下: fragment_activity.xml <?xml version=1.0 encoding=utf-8?> <FrameLayout xmlns:android=...

    一款基于Android平台下设计各个Activity布局和控件与结合SQLite轻型的嵌入式数据库.zip

    一款基于Android平台下设计各个Activity布局和控件与结合SQLite轻型的嵌入式数据库使用java进行开发的一款android端的学生信息管理系统、主要包括学生信息添加、维护、查询、学生成绩添加、维护、查询、系统管理、...

    Android仿百度贴吧TAB选项卡菜单和悬浮式顶部效果

    MyTitleBar源代码,在Android定义Tab选项卡,实现了仿百度贴吧中的悬浮顶部和底部的标题栏效果,项目中含:源码+效果图+项目结构图,很不错的Android界面设计效果,代码中ISIBLE:0的意思是可见的;INVISIBILITY:4 ...

    DataBinding 架构组件 ② - DataBinding 布局中使用 import 标签导入 Java、Kotlin 类

    【Jetpack】DataBinding 架构组件 ② ( 字符串拼接函数 | 绑定点击事件函数 | DataBinding 布局中使用 import 标签导入 Java、Kotlin 类 ) https://hanshuliang.blog.csdn.net/article/details/129773150 一、...

    android开发——简易计算器的设计报告.doc

    简易计算机的设计 摘要:Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能 够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新 兴力量。Android基于Linux平台,...

    java7源码-Android-Annotation-Study:Android注解生成代码

    Android注解生成代码 Android注解生成代码老早前就开始用了,在以前Eclipse ADT时代就已经开始使用AvailableAnnotations注解框架,极大简化了Android开发。只是一开始并不了解其原理,感觉这个黑科技还是蛮厉害的,...

    一款基于Android平台下设计各个Activity布局和控件与结合SQLite轻型的嵌入式数据库使用java进行开.zip

    对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同...

Global site tag (gtag.js) - Google Analytics