Articles of 布局

Android:从代码添加视图到特定的布局

我想dynamic地将一些视图添加到已经在XML中定义的LinearLayout中。 我能够添加视图到屏幕上,但是他们不被放置在正确的LinearLayout内部。 我如何从代码中获取对此特定布局的引用,类似于使用findViewById()获取View ?

button边距的布局问题

我有在android应用程序中组织布局的问题。 我dynamic创buildbutton,并将其添加到我的布局: LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); for (int i = 0; i < NO_NUMBERS; i++){ Button btn = new Button(this); btn = (Button) layoutInflater.inflate(R.layout.button, null); btn.setId(2000+i); Integer randomNumber = sort.getNumbersCopy()[i]; btn.setText(randomNumber.toString()); btn.setOnClickListener((OnClickListener) this); buttonList.addView(btn); list.add(btn); } 我将它添加到LinearLayout: <LinearLayout android:id="@+id/buttonlist" android:layout_alignParentLeft="true" android:layout_marginTop="185dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:orientation="horizontal" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> </LinearLayout> 而我正在导入这个.xml我定义的button布局: <Button xmlns:android="http://schemas.android.com/apk/res/android" android:textSize="26dp" android:textStyle ="bold" android:textColor="#ffffff" […]

用wrap_content展开TextView,直到邻居视图到达父项的末尾

我需要实现以下布局: 我有两个相对布局的TextView:绿色的是固定的文本与wrap_content ,黑色的dynamic文本与wrap_content 。 黑色的文字可以改变,变得很长。 我想黑色的TextView扩展文本,直到绿色视图到达父母的结束。 如果发生这种情况,黑色的TextView应该停止扩展和椭圆化结束。 我怎样才能做到这一点? 我试过的: <RelativeLayout android:id="@+id/parent" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/leftTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:layout_alignParentLeft="true" android:textSize="18sp" /> <TextView android:id="@+id/rightTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/leftTextView" android:textSize="18sp" /> </RelativeLayout> 但是,当黑色的文字变得越来越大,它推出了绿色的一个

Android:animation被父视图剪辑

我目前有一个ImageView,我正在应用一个比例尺animation。 这个视图在layout_height和layout_width被设置为wrap_content的相对布局中。 问题是当animation开始时,它使得图像视图大于其父级布局,然后图像被切断。 有没有办法解决? 这是一个工作示例: xml文件 – <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dip" android:layout_gravity="center_horizontal"> <ImageView android:id="@+id/imgO" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/circle"/> </RelativeLayout> </LinearLayout> java文件 – ImageView imgO; ScaleAnimation makeSmaller; ScaleAnimation makeBigger; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.titlescreen); //Animation imgO = (ImageView)findViewById(R.id.imgO); makeSmaller = new ScaleAnimation((float)10.0, (float)1.0, (float)10.0, (float)1.0, Animation.RELATIVE_TO_SELF, […]

Android:试图理解android:layout_weight

我试图分成三个部分的一页。 我想以百分比值来实现,但Android不支持。 相反,我必须使用android:layout_weight 。 但是我很难理解它,并且正确。 特别是如何计算实际大小。 有没有办法从android:layout_weight获取百分比值(0..100%)? 我经历了几个例子(见附件截图)来描述问题。 所有的彩色字段都是<LinearLayout> , android:layout_height="fill_parent" ,因为我想把整个屏幕分开。 情况1 好的,简单。 每个<LinearLayout>获得33%。 案例2 UPS?! 第一个(黄色) <LinearLayout>完全消失? 为什么? 案例3 再次困惑。 黄色<LinearLayout>回来了。 但是,较重的两个<LinearLayout>变小了? 到底是怎么回事? 案例4 我完全不知道这背后的math是什么。

Android设置ImageButton作为切换

点击时如何让图像button处于“按下”状态? 基本上我只是想背景是郁闷的背景,但我不知道如何设置它。 此刻,我只是将选定的button背景复制到我的res文件夹,但是当我将它设置为背景时,它变得模糊(因为原始图像比button本身更大)。 正常背景: 替代文字http://img707.imageshack.us/img707/9199/ss20100426163452.png我得到: alt text http://img707.imageshack.us/img707/912/ss20100426163357.png 替代文字http ://img3.imageshack.us/img3/8304/ss20100426163623.png 另外,我不认为我考虑到许多不同的UI布局,实际上可以使用这种方法。 该button应该保持按用户正在使用的用户界面。

处理昂贵的视图高度计算的最佳做法?

我不断遇到自定义视图的大小和布局问题,我想知道是否有人可以提出一个“最佳实践”的方法。 问题如下。 设想一个自定义视图,其中内容所需的高度取决于视图的宽度(类似于多行TextView)。 (显然,这只适用于高度不是由布局参数固定的情况)。捕获的是,对于给定的宽度,计算这些自定义视图中的内容高度是相当昂贵的。 特别是在UI线程上计算起来太昂贵了,所以在某个时候需要启动一个工作线程来计算布局,当完成时需要更新UI。 问题是,这应该如何devise? 我想到了几个策略。 他们都假设每当计算高度时,就会logging相应的宽度。 这个代码显示了第一个策略: protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int width = measureWidth(widthMeasureSpec); setMeasuredDimension(width, measureHeight(heightMeasureSpec, width)); } private int measureWidth(int widthMeasureSpec) { // irrelevant to this problem } private int measureHeight(int heightMeasureSpec, int width) { int result; int specMode = MeasureSpec.getMode(measureSpec); int specSize = MeasureSpec.getSize(measureSpec); if (specMode == […]

Android使用布局作为创build多个布局实例的模板

好的,所以我明白如何使用include标签,但是我遇到了一个问题。 基本上我想有一个在XML中定义的布局,其中有几个TextView和一个ImageView 。 然后我想遍历一个数组,并填充xml布局中的字段取决于数组中的内容(在运行时填充)。 从而制作xml布局的多个副本,并用唯一的数据填充字段。 现在我不知道如何以这种方式重新使用这个LinearLayout ,因为TextView和ImageView有一个常量ID,我需要制作这个布局的多个副本。 有什么办法来夸大资源,然后复制它,这将工作…所以 LinearLayout one = new LinearLayout(inflater.inflate(R.layout.home, container, false)); ^不幸的是没有这样的构造函数。 唯一的另一种方法是以编程方式完成,但是我希望在xml中而不是在代码中拥有视图的属性和LinearLayout 。 这就像我想LinearLayout是一个模板,你可以复制我猜…真的不知道这是可能的。

GridLayoutManager – 如何自动适应列?

我有一个显示卡片视图的GridLayoutManager的RecyclerView。 我想要根据屏幕大小重新排列卡(Google Play应用程序使用其应用程序卡来完成此类操作)。 这里是一个例子: 下面是我的应用程序现在的样子: 正如你所看到的,这些卡片只是拉伸,不适合从方向改变而成的空白空间。 那我该怎么做呢? 码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Json; using System.Threading; using System.Threading.Tasks; using Android.Media; using Android.App; using Android.Support.V4.App; using Android.Support.V4.Content.Res; using Android.Support.V4.Widget; using Android.Support.V7.Widget; using Android.Content; using Android.OS; using Android.Runtime; using Android.Util; using Android.Views; using Android.Widget; using Android.Net; using Android.Views.Animations; using Android.Graphics; using Android.Graphics.Drawables; using […]

Android自定义RatingBar图片工件

我在我的ListView项目的应用程序中实现了一个自定义的RatingBar 。 自定义样式ratingbar_red.xml : <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background" android:drawable="@drawable/star_off" /> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/star_on" /> <item android:id="@android:id/progress" android:drawable="@drawable/star_on" /> </layer-list> 这是ListItem布局的一部分: <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingLeft="15dp" > <RatingBar android:id="@+id/li_company_rating" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_marginBottom="1dp" android:isIndicator="true" android:numStars="5" android:progressDrawable="@drawable/ratingbar_red" android:stepSize="1" /> <Button android:id="@+id/li_company_callbtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="0dp" android:layout_marginLeft="40dp" android:contentDescription="@string/ContentDescription" android:drawableLeft="@drawable/phone_icon" android:drawablePadding="5dp" android:onClick="callbtn_Click" android:text="@string/CallButton" android:focusable="false" android:focusableInTouchMode="false" > </Button> […]