知道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);
}
}
}
分享到:
相关推荐
本教程将深入讲解如何在Java代码中直接编写布局以及如何引入XML布局。这两种方法各有优缺点,适用于不同的场景。 首先,让我们探讨在Java中直接编写布局。这种方式通常被称为动态布局,它允许开发者在运行时创建和...
然后在Activity的Java代码中,可以通过找到根布局并更换背景: ```java LinearLayout rootLayout = findViewById(R.id.rootLayout); rootLayout.setBackgroundResource(R.drawable.new_background); ``` 2. **使用...
本文将深入探讨Android程序源码中的代码布局,包括XML布局文件、Java/Kotlin代码与布局的交互、以及如何优化布局性能。 首先,Android应用的用户界面主要通过XML布局文件来定义。这些文件通常位于`res/layout`目录...
总之,Activity中用代码动态加载布局是一种常见的Android开发技巧,它允许开发者在运行时灵活地构建和改变用户界面。通过熟练掌握`LayoutInflater`和相关方法,我们可以创建更加高效、适应性强的应用程序。同时,这...
`CodeUIDemo`这个项目的源代码可能包含了这些概念的实例,通过分析和学习这些代码,开发者能够掌握使用Java或Kotlin动态创建Android界面布局的方法,进一步提升应用开发技能。 总之,Android界面布局的代码实现涉及...
在Android和Java开发领域,深入理解源代码是提升技能的关键步骤。这个压缩包"android + java 源代码"提供了一个宝贵的资源,将Android和Java的源码集成在一起,便于开发者在Eclipse环境中进行查阅和学习。下面我们将...
如果需要动态改变布局,可以使用Java代码或者数据绑定来修改TextView的属性值,如文本内容、颜色、大小等。 总的来说,Android的RelativeLayout允许开发者以相对方式定位视图,实现复杂多变的界面设计。通过灵活...
在Android应用中,Activity通常包含一个或多个布局文件,这些布局文件定义了用户界面的元素。标题栏(Title Bar)是Android系统默认提供的,位于Activity顶部,包含应用的名称和其他可能的操作。 要去除Activity的...
### Android String.xml标签在java代码中的引用 #### 概述 在Android开发中,为了方便进行国际化处理以及统一管理应用内的字符串资源,开发者通常会将应用程序中的文本信息存放在`res/values/strings.xml`文件中。...
本示例“Android代码-Activity实现透明的最简洁Demo”旨在演示如何轻松创建一个具有透明背景的Activity。 首先,我们需要了解Android中的主题(Theme)和样式(Style)。在AndroidManifest.xml中,每个Activity都...
总结来说,“Android之Activity应用小例子”主要涵盖了Activity的基本概念、生命周期、布局加载、Intent通信以及Activity间的回退栈管理。通过学习这个小例子,开发者可以对Android应用的核心组成部分Activity有更...
在Activity的`onCreate()`方法中添加如下代码: ```java getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager....
在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...
1. 在XML布局文件中声明Fragment,或者在Activity的Java代码中动态添加。例如: ```xml android:id="@+id/fragment1" android:name="com.example.FragmentOne" android:layout_width="match_parent" android:...
本教程将详细介绍如何在Android项目中自定义`Toolbar`布局。 首先,我们从`Toolbar`的基本概念开始。`Toolbar`是`android.support.v7.widget.Toolbar`类的一个实例,它是Android Support Library的一部分。它的引入...
在Android应用开发中,构建多页面布局是一种常见的需求,它能提供丰富的用户体验并允许用户在不同的内容之间平滑切换。本篇文章将详细讲解如何利用Fragment和ViewPager实现这一目标。 首先,Fragment是Android SDK...
在`DialogActivity`的Java代码中,你需要初始化布局并处理按钮点击事件。例如: ```java public class DialogActivity extends AppCompatActivity { @Override protected void onCreate(Bundle ...
总结起来,创建一个Android的网格布局ListView主要涉及以下几个步骤:设计网格项布局、创建自定义Adapter、在Activity中设置GridView并加载数据。通过灵活地调整布局和Adapter,你可以实现各种复杂的网格布局效果。...
这部分通常用Java代码实现。 - 方块生成:随机在棋盘空位上添加2或4。 - 方块移动:根据用户滑动方向,将相邻且数值相同的方块合并,并更新棋盘状态。 - 方块合并:当两个相邻的同数值方块相遇时,它们相加并将...
在提供的文件名"first"中,可能包含了这个简单实例的主Activity代码或者相关资源。这个文件可能包含的是MainActivity类的源代码,展示了一个基本的Activity如何初始化、显示UI,并处理用户交互。 通过学习这样的...