Articles of android layout

软键盘显示时如何保持背景图像大小

当软件键盘显示时,它会调整我的布局大小,从而将背景图像压缩在一起。 我的问题基本上是这个问题的重复,这是以一种非常好的方式解释的: 软件键盘在Android上调整背景图像的大小 然而,当他们find解决问题的黑客时,这个问题就被关闭了。 我不能用这个黑客。 我的整个布局都在ScrollView中,我需要能够始终正确使用此scrollview。 通过使用android:windowSoftInputMode =“stateVisible | adjustPan”,用户将无法向下滚动并在键盘显示时看到屏幕底部,因为布局将部分存在于键盘后面。 因此,解决方案对我来说是不可接受的。 那里有更好的解决方案吗? 干杯,

mdpi,hdpi,xhdpi和xxhdpi的图像分辨率

我的应用背景为720×1280像素,1080×1920像素和1440×2560像素。 我应该在哪个文件夹(mdpi,hdpi,xhdpi和xxhdpi)中放置每个背景?

KitKat中的半透明系统条和内容边距

我正在尝试利用新的KitKat半透明系统条,在我的应用程序的背景中获得全屏图像。 我在找出正确的设置以获得我想要的行为时遇到了问题。 现在我有一个带有三个Fragment的ViewPager ,每个Fragment由一个包含ImageView (用于背景图像)的RelativeLayout和用于内容的TextView 。 我所追求的是让内容完全适合可用于交互的屏幕部分,并使图像占据屏幕的整个可见部分。 如果我只是使用android:Theme.Holo.Light.NoActionBar.TranslucentDecor作为我的主题,它在纵向看起来很好,但导航栏重叠了横向内容(见下面的截图)。 按照文档中的建议 ,我在我的主题中添加了android:fitsSystemWindows = true ,但这会产生一些奇怪的文物(见下文) 我怎样才能使它在第二个例子中表现得像,但看起来不错,没有视觉文物?

如何在膨胀的布局中使用相同的ID来扩充布局的多个实例

我有一个带有许多嵌套LinearLayouts和TextViewss的LinearLayout 我的主要活动是膨胀主要的LinearLayout, 然后我从服务器加载数据,并根据收到的数据,我在占位符(LinearLayout)中添加多个布局 这是一个简单的新闻页面,我加载与新闻相关联的图像并将其放在最初为空的LinearLayout中。 每个图像都有以下信息:标题(TextView),日期(TextView),图像(ImageView)所以我实际做的是以下内容: * 请注意,这只是问题中我必须编写的所有尝试 – > catch … if / else ….等 public void addImages(JSONArray images){ ViewGroup vg = (ViewGroup) findViewById(R.id.imagesPlaceHolder); // loop on images for(int i =0;i<images.length;i++){ View v = getLayoutInflater().inflate(R.layout.image_preview,vg); // then I think that here is the problem ImageView imv = (ImageView) v.findViewById(R.id.imagePreview); TextView dt = (TextView) v.findViewById(R.id.dateHolder); TextView […]

将相机预览适合大于显示器的SurfaceView

我有一个Android应用程序需要全屏显示相机预览,无论getSupportedPreviewSizes()给出的预览大小没有失真。 我希望这会在高度或宽度上裁剪一些预览,但这并不关心我。 我之所以这样做是因为某些安卓摄像头(例如三星Galaxy SII前置摄像头)不会返回任何与显示器具有相同宽高比的预览,因此需要进行拉伸和剪裁。 是否可以将相机预览完全增加到大于显示尺寸的视图? 通过简单地将曲面视图的布局参数设置为match_parent,可以使SurfaceView大于返回的预览像素尺寸,但这会导致某些方向的失真,并且只有在预览填充显示之前才可能。 这似乎表明在显示器外部进行预览是不可能的,并且硬件(或OS)限制了这种行为。 关于这个主题还有另一个问题 ,但是这个问题声称不可能创建大于屏幕尺寸的SurfaceView,这是错误的,正如我在日志记录中发现的那样。 然而,似乎情况是摄像机预览无法增长到巨大的SurfaceView的全尺寸。 我的尝试: 我有一个相对布局,在它内部是一个FrameLayout,在其中我创建了一个SurfaceView。 整个相对布局的宽度设置在635dp以下,这是设备屏幕尺寸的两倍。 FrameLayout匹配此大小调整,SurfaceView也是如此(稍后以编程方式添加) 以下是获取和设置预览大小的代码。 在这里,我想让相机预览展开以填充整个FrameLayout(屏幕宽度的两倍)。 视图完全正常显示和破坏,因此我删除与此特定问题无关的代码,因为它分散了基本问题,并且我尝试轻松简单地将视图扩展为大于显示大小的视图。 public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { … public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { Camera.Parameters parameters = mCamera.getParameters(); final DisplayMetrics dm = this.getResources().getDisplayMetrics(); //getBestPreviewSize returns the best preview size, don’t worry //but […]

RelativeLayout中子项的match_parent属性

简而言之,是否可以告诉RelativeLayout的子项始终匹配RelativeLayout的高度,而不管同一RelativeLayout其他子项的行为如何? 简而言之,就是这样。 详情如下。 我想要实现的是一个至少有三个视图的ListView行,其中一个视图将是列表条目右侧的条带(下面的红色视图)。 我遇到的问题是左侧有一个TextView ,并且根据我有多少文本,条带不会填充整个布局。 下面的图片非常清楚地解释了这一点。 ListView项目布局: 结果: 将条带和根高度设置为match_parent没有区别。 我做的。 重复这个问题,我希望红色条纹始终垂直填充父级。 您可以看到条带未对齐到根的顶部。 注意:上面的例子是我能想到的最简单,最独立的例子。 它只是一个ListActivity其中包含一个由静态String数组填充的匿名ArrayAdapter 。 onCreate的相关代码最多为8行,所以不用担心。 这真的是布局。 此外,我已经使用了嵌套的LinearLayout ,但是如果可能的话,我正试图稍微减少布局结构的深度。 正如预期的那样, LinearLayout工作正常。

从Android L中的ImageView获取位图

我想从ImageView获取Bitmap 。 我使用了以下代码,但getDrawable()返回null。 如何从ImageView获取整个Bitmap 。 Bitmap bitmap; if (mImageViewer.getDrawable() instanceof BitmapDrawable) { bitmap = ((BitmapDrawable) mImageViewer.getDrawable()).getBitmap(); } else { Drawable d = mImageViewer.getDrawable(); bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); d.draw(canvas); } storeImage(bitmap,”final.jpeg”);

我想在android,Data Binding Api中为TextView连接两个字符串

我使用DataBinding Api在android布局中设置视图。 这是我的布局。 layout.xml 我希望TextView显示Hello UserName 。 如何使用数据绑定api实现此目的。

Android scrollview删除蓝灯

当您使用scrollview在Android上滚动时,它会向您滚动的方向生成蓝灯。如何删除蓝灯? 我的清单: Java源代码: package com.my.app.section; import android.content.Context; import android.util.AttributeSet; import com.my.app.BaseSection; import com.my.app.R; public class SobreSection extends BaseSection { public SobreSection(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public SobreSection(Context context, AttributeSet attrs) { super(context, attrs); } public SobreSection(Context context) { super(context); } @Override protected void onFinishInflate() { // TODO Auto-generated method […]

Android:在执行时获取“无法重新加载AVD列表:”错误

在exectution时我得到一个错误 无法重新加载AVD列表:cvc-enumeration-valid:对于枚举'[ldpi,mdpi,tvdpi,hdpi,xhdpi,400dpi,xxhdpi,560dpi,xxxhdpi]’,值’280dpi’不是facet-valid。 它必须是枚举中的值。 解析C:\ Users \ Binil \ AppData \ Local \ Android \ sdk \ system-images \ android-22 \ android-wear \ armeabi-v7a \ devices.xml cvc-enumeration-valid时出错:值’280dpi’不是方面 – 有效的枚举'[ldpi,mdpi,tvdpi,hdpi,xhdpi,400dpi,xxhdpi,560dpi,xxxhdpi]’。 它必须是枚举中的值。 我正在使用android studio。 dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:22.2.1’ } 任何人都可以告诉我如何纠正这个错误。