`

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在java中写布局及在代码中引入xml布局demo

    本教程将深入讲解如何在Java代码中直接编写布局以及如何引入XML布局。这两种方法各有优缺点,适用于不同的场景。 首先,让我们探讨在Java中直接编写布局。这种方式通常被称为动态布局,它允许开发者在运行时创建和...

    Android 动态设置程序activity背景图片源码

    然后在Activity的Java代码中,可以通过找到根布局并更换背景: ```java LinearLayout rootLayout = findViewById(R.id.rootLayout); rootLayout.setBackgroundResource(R.drawable.new_background); ``` 2. **使用...

    Android程序源码--代码布局

    本文将深入探讨Android程序源码中的代码布局,包括XML布局文件、Java/Kotlin代码与布局的交互、以及如何优化布局性能。 首先,Android应用的用户界面主要通过XML布局文件来定义。这些文件通常位于`res/layout`目录...

    Activity中用代码动态加载布局

    总之,Activity中用代码动态加载布局是一种常见的Android开发技巧,它允许开发者在运行时灵活地构建和改变用户界面。通过熟练掌握`LayoutInflater`和相关方法,我们可以创建更加高效、适应性强的应用程序。同时,这...

    使用代码编写Android界面布局源代码

    `CodeUIDemo`这个项目的源代码可能包含了这些概念的实例,通过分析和学习这些代码,开发者能够掌握使用Java或Kotlin动态创建Android界面布局的方法,进一步提升应用开发技能。 总之,Android界面布局的代码实现涉及...

    android + java 源代码

    在Android和Java开发领域,深入理解源代码是提升技能的关键步骤。这个压缩包"android + java 源代码"提供了一个宝贵的资源,将Android和Java的源码集成在一起,便于开发者在Eclipse环境中进行查阅和学习。下面我们将...

    Android中使用RelativeLayout完成梅花布局的代码清单.pdf

    如果需要动态改变布局,可以使用Java代码或者数据绑定来修改TextView的属性值,如文本内容、颜色、大小等。 总的来说,Android的RelativeLayout允许开发者以相对方式定位视图,实现复杂多变的界面设计。通过灵活...

    去除Activity的标题,使用一句java语句

    在Android应用中,Activity通常包含一个或多个布局文件,这些布局文件定义了用户界面的元素。标题栏(Title Bar)是Android系统默认提供的,位于Activity顶部,包含应用的名称和其他可能的操作。 要去除Activity的...

    Android String.xml标签在java代码中的引用

    ### Android String.xml标签在java代码中的引用 #### 概述 在Android开发中,为了方便进行国际化处理以及统一管理应用内的字符串资源,开发者通常会将应用程序中的文本信息存放在`res/values/strings.xml`文件中。...

    Android代码-Activity实现透明的最简洁Demo.zip

    本示例“Android代码-Activity实现透明的最简洁Demo”旨在演示如何轻松创建一个具有透明背景的Activity。 首先,我们需要了解Android中的主题(Theme)和样式(Style)。在AndroidManifest.xml中,每个Activity都...

    Android之Activity应用小例子

    总结来说,“Android之Activity应用小例子”主要涵盖了Activity的基本概念、生命周期、布局加载、Intent通信以及Activity间的回退栈管理。通过学习这个小例子,开发者可以对Android应用的核心组成部分Activity有更...

    Android锁屏状态下显示Activity

    在Activity的`onCreate()`方法中添加如下代码: ```java getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager....

    Android使用Activity用作弹出式对话框

    在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...

    Android中Fragment和Activity之间的互操作代码例子

    1. 在XML布局文件中声明Fragment,或者在Activity的Java代码中动态添加。例如: ```xml android:id="@+id/fragment1" android:name="com.example.FragmentOne" android:layout_width="match_parent" android:...

    Android自定义toolbar布局

    本教程将详细介绍如何在Android项目中自定义`Toolbar`布局。 首先,我们从`Toolbar`的基本概念开始。`Toolbar`是`android.support.v7.widget.Toolbar`类的一个实例,它是Android Support Library的一部分。它的引入...

    Android多页面布局

    在Android应用开发中,构建多页面布局是一种常见的需求,它能提供丰富的用户体验并允许用户在不同的内容之间平滑切换。本篇文章将详细讲解如何利用Fragment和ViewPager实现这一目标。 首先,Fragment是Android SDK...

    Android Dialog风格的Activity

    在`DialogActivity`的Java代码中,你需要初始化布局并处理按钮点击事件。例如: ```java public class DialogActivity extends AppCompatActivity { @Override protected void onCreate(Bundle ...

    android ListView 网格布局

    总结起来,创建一个Android的网格布局ListView主要涉及以下几个步骤:设计网格项布局、创建自定义Adapter、在Activity中设置GridView并加载数据。通过灵活地调整布局和Adapter,你可以实现各种复杂的网格布局效果。...

    Android版2048游戏java代码实现

    这部分通常用Java代码实现。 - 方块生成:随机在棋盘空位上添加2或4。 - 方块移动:根据用户滑动方向,将相邻且数值相同的方块合并,并更新棋盘状态。 - 方块合并:当两个相邻的同数值方块相遇时,它们相加并将...

    动手学Android之二——初识Activity示例代码

    在提供的文件名"first"中,可能包含了这个简单实例的主Activity代码或者相关资源。这个文件可能包含的是MainActivity类的源代码,展示了一个基本的Activity如何初始化、显示UI,并处理用户交互。 通过学习这样的...

Global site tag (gtag.js) - Google Analytics