Articles of android layout

如何以编程方式设置LinearLayout的宽度?

是滑块的来源和课程链接: Blog 在这种情况下,文件“left_menu.xml”的宽度确定TextView(android:layout_width =“260dp”)如何根据设备屏幕将宽度设置为“LinearLayout”文件“left_menu.xml”? 例如,我想“LinearLayout”的宽度始终是屏幕设备的1/3? 或者以任何方式设置TextView宽度为设备屏幕宽度的1/3。

按钮文本没有多行

我正在尝试创建自定义AlertDialog ,并且布局中有两个按钮。 但是,当按钮布局太长时,它只显示第一个单词。 我已经设置了xml singleLine = “false” ,但没有。 此外,我在代码中设置了按钮的行数,在本例中为2.但是当文本不长时,按钮保持很大,而不是包装内容。 我想做的是让按钮包裹整个文本,即使它打破按钮的文本行太长,如果左按钮因为包装整个文本而得到更大的高度,按钮在它的侧面应该是相同的高度。 我知道Android会自动执行此操作,但我不知道为什么它不会发生。 在下面的图像中,按钮中的文本应为“这是一个测试按钮”,但它会剪切文本,并且不会修改内容而不修改其宽度。 以下是它的外观截图: 这是这个布局的xml:

Android CheckBox文本无法显示

我正试图在我的一个Android活动中动态创建一些CheckBox,但它不会渲染文本。 这是我的简化代码…… 布局XML: … … 活动代码: final LinearLayout attractedTo = (LinearLayout) findViewById(R.id.register_attracted_to); final CheckBox male = new CheckBox(this); male.setText(“Male”); attractedTo.addView(male); final CheckBox female = new CheckBox(this); female.setText(“Female”); attractedTo.addView(female); 我的“真实”代码比这更复杂(任何动态),这就是为什么我没有简单地在布局本身中包含checkbox。 但是,即使对我的代码进行调整仍然无法正确呈现checkbox文本。 这是一个演示的屏幕截图(请参阅“吸引到”部分),稍加一些,以certificate我的垂直布局似乎正常工作,否则:

Android:在布局之间重叠放置ImageView

我试图在两个布局之间的重叠点上放置一个ImageView 。 在下图中,我的目标是将ImageView放在白色方块所在的位置。 注意:重叠点不一定垂直居中,如下所示 这可能是XML吗? 我现在唯一的猜测就是在实际的代码中做到这一点。 编辑2016年8月3日:作为参考,我认为ConstraintLayouts可能是解决这些types问题的最佳解决方案http://tools.android.com/tech-docs/layout-editor

Android:绘制背景,没有像Whatsapp那样的GPU OverDraw

为了提高应用程序性能,我遇到了GPU Overdraw问题。 根据Romain Guy的文章,这里是基本的颜色: 没有颜色意味着没有透支 。 像素只涂了一次。 在此示例中,您可以看到背景完好无损。 蓝色表示透支1倍。 像素被涂了两次。 大蓝色区域是可以接受的(如果整个窗口是蓝色的,你可以摆脱一层。) 绿色表示透支超过2倍。 像素被涂了三次。 中等大小的绿色区域是可以接受的,但您应该尝试优化它们。 浅红色表示3倍的透支。 像素被涂了四次。 小的浅红色区域是可以接受的。 深红色表示4倍或更多的透支。 像素被涂上5次或更多次。 这是错的。 解决它 为了测试它,我用XML创建了一个简单的项目,如下所示 XML代码 得到结果: 然后我尝试了Whatsapp的透支。 令我惊讶的是: 那么Whatsapp是如何绘制背景壁纸而没有透支 (没有蓝色色调)但是在我的简单xml中 ,甚至着色都会给一个透支? ? PS:我有意添加了背景颜色,表明添加颜色会过度绘制但添加壁纸则不会

如何更改StateListDrawable中的颜色?

我有一个按钮的下面的选择器(有2个状态,常规和按下): 我的按钮具有以下内容,它将背景指定为上面的选择器: 我需要在Activity加载时从代码访问和更改两种状态的颜色。 我怎样才能做到这一点?

用户搜索后隐藏键盘?

好吧,我有一个活动,其中有一个EditText,并在输入键搜索结果显示,所以我只想关闭键盘,当搜索结果即将显示,以防止用户必须这样做。 但是,如果用户想要优化他的搜索,如果他再次点击EditText,键盘应该打开。 这比我想象的要困难得多,我一直在搜索并尝试了一些大多数甚至不关闭我的HTC键盘的东西,一种方法,其中InputType设置为INPUT_NULL关闭键盘,但之后不打开。 有关如何做到这一点的任何建议?

Android背景与渐变和平铺图像

对于linearLayout,我希望在背景中具有渐变以及平铺(重复)图像。 我已经将形状xml设置为背景 如何添加平铺的bg图像?

以编程方式更改布局的布局颜色

我试图以编程方式更改布局颜色但相对布局(尝试线性布局但未更改),但无法更改它。 尝试调试应用程序也无济于事,没有与我的TAG相关的消息。 布局最初打印后,应用程序停止运行。 package com.test.intentdemo; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; //import android.os.SystemClock; import android.widget.RelativeLayout; import android.util.*; import java.lang.Thread; public class intentDemo extends Activity { /** Called when the activity is first created. */ RelativeLayout lLayout; public static final String TAG=”MyActivity”; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lLayout = (RelativeLayout) findViewById(R.layout.main); if (Log.isLoggable(TAG,0)) […]

使用animation更改布局的权重

在我的主布局文件中,我有一个RelativeLayout,权重为1(基本上显示一个地图)在LinearLayout上方,权重为2,这样声明: DownLayout包含一个项目列表,当我点击一个项目时,我想将DownLayout的权重更改为4,因此上部布局(地图)仅占屏幕的1/5而不是1/3。 我设法通过更改LayoutParams来实现: LinearLayout linearLayout = (LinearLayout) mActivity.findViewById(R.id.DownLayout); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT); params.weight = 4.0f; linearLayout.setLayoutParams(params); 它有效,但我不满意,变化太直接,没有过渡,而我希望它是顺利的。 有没有办法使用animation? 我发现了一些使用ObjectAnimator来改变weightSum的例子,但它并不想要我想要的(如果我只更改了这个属性,我在我的向下布局下面有一些空闲空间): float ws = mLinearLayout.getWeightSum(); ObjectAnimator anim = ObjectAnimator.ofFloat(mLinearLayout, “weightSum”, ws, 5.0f); anim.setDuration(3000); anim.addUpdateListener(this); anim.start(); 有没有办法使用ObjectAnimator(或其他东西)来做到这一点? 谢谢 !