`
纳木那咔
  • 浏览: 13047 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

无xml布局的activity

阅读更多

 

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

 

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

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

	}
}

 

至此一个没有 xml 布局文件的 activity 就生成出来。写的不足的地方希望大家见谅。如有错误,请大家帮忙提出。纳木在这里谢过各位。

分享到:
评论

相关推荐

    activity_main.xml

    星座查询的页面布局

    在Activity中用xml添加菜单

    在Activity中用xml添加菜单,是非常常用的一种写菜单的方法。

    Android RelativeLayout实现XML布局的例子.rar

    一个Android XML布局的例子,主要利用xml文件进行布局,里边用到的是RelativeLayout。具体的本例中:  非洲草原地图:用到了FrameLayout的使用;ActivityMain演示了linerLayout。  个性化表单ActivityLayout 演示...

    pdf.js和pdf的webview调用activity及xml布局

    里面有一个activity和对应的xml文件,传入的intent都写好了,还有一个压缩包,把它放在asset的根目录下就直接可以打开pdf文件了,亲测可用

    ToActivity.zip

    创建activity_two.xml布局 创建Intent-与TwoActivity建立关联 修改布局activity_main.xml 接受MainActivity传递的消息 范型 Class 正确使用 android:parentActivityName 取消导航栏默认返回图标

    Android演示如何使用xml文件进行布局.rar

    Android使用xml文件进行布局的例子,用到的是RelativeLayout。演示了以下功能:  1.ActivityMain演示了linerLayout。  2.ActivityLayout 演示了RelativeLayout和linerLayout的结合。  3....

    HelloAndroid:XML中的简单布局

    该应用程序在android中实现了绘制XML布局的基础。 属性如下:- 根布局是LinearLayout,并且方向已设置为垂直。 1个ImageView和4个TextView用于显示细节。 在/res/Drawable/mylayout.xml中,已经定义了卡片的...

    Android-simple-XML-Parser:用于从 Android XML 布局文件中提取视图 ID 的简单类

    用于从 Android XML 布局文件中提取视图 ID 的简单类 指示 该类仅包含一个构造函数和一个方法。 该方法采用Context类型的参数。 据推测,该类将从 Android Activity 中初始化,在这种情况下, this是参数的建议值...

    Android开发基础 – 使用XML布局文件控制UI界面(桌面台球游戏界面)

    Android开发基础 – 使用XML布局文件控制UI界面 第一步,打开android studio,点击File->new ->new module.进入如下界面,选择第一个手机和平板应用,点击next。 其中第1行代码为居中显示,第二行为文本框大小,第...

    Android4.0入门之Activity返回参数

    1.对界面进行布局(在layout目录下配置每个Activity对应的xml) 2.书写Activity类,获取控件、添加时间(新增Activity后,切记到配置Activity文件中去注册) Activity返回参数和传值区别:传参调用startActivity...

    Android-ResourceInspector一个调试工具用于显示当前Activity所使用的布局文件

    一个调试工具用于显示当前Activity所使用的布局文件。 当您想从大量资源文件中查找当前Activity使用的布局xml文件时,此工具非常有用。

    Android加载Assets目录中Xml布局文件

    但是这种方法显然不太合适后来就发现了Android 其实提供了一个方法可以加载xml布局文件,就是使用inflate(XmlPullParser parser, ViewGroup root)这个方法,网上找了大批的文章,其中还是找到了两篇简单描写了下这个...

    Android activity、菜单及dialog、列表等常见UI源码.rar

     layout:一个布局的例子,主要利用xml文件进行布局,这里边用到的是RelativeLayout。  1.ActivityMain演示了linerLayout。  2.ActivityLayout 演示了RelativeLayout和linerLayout的结合。  3....

    Android新建Activity的方法

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

    Android源码,利用xml文件进行布局

    内容索引:Java源码,Android,Android,XML,布局 一个Android布局的例子,主要是利用xml文件进行布局,这里边用到的是RelativeLayout。    1.ActivityMain演示了linerLayout。  2.ActivityLayout 演示了...

    安卓一个Activity加载多个layout布局文件-附件资源

    安卓一个Activity加载多个layout布局文件-附件资源

    更易用的Databing布局绑定

    主要使用Databing和注解来实现xml布局与activity、fragment进行绑定,简化findviewbyid等赘余代码,且通过注解简化setContentView等赘余代码,简单易用。

    移动终端应用开发题库

    2.对于XML布局文件中的视图控件,layout_width属性的属性值不可以是什么?D A.match_parent B.fill_parent C.wrap_content D.match_content 3.对一些资源以及状态的操作保存,最好是保存在Activity生命周期的哪个...

Global site tag (gtag.js) - Google Analytics