Articles of android imageview

两个imageview之间的animation过渡

一方面我有一个带有两个ImageView的布局: 另一方面,我有一个图像资源列表: static int mImages[] = new int[] { R.drawable.artistes, R.drawable.couple1, R.drawable.couple2, R.drawable.couple3, R.drawable.enfant, R.drawable.manege, R.drawable.manege2, R.drawable.metropolitain, R.drawable.panoramique, R.drawable.sacrecoeur }; 我还有一个由Handler + postDelayed()制作的调度程序,用计时器一个接一个地显示图像。 这工作正常 我的问题是关于从一个图像视图到另一个图像视图的过渡animation,知道我每次都要清理图像视图以避免OutOfMemoryExceptions: 现在我在schduled回调方法中这样做: if (mIndex == mImages.length) { mIndex = 0; // repeat } if (mIndex % 2 != 0) { // pair mImageCross2.setImageResource(mImages[mIndex++]); Utils.crossfade(mImageCross2, mImageCross1, 1000/*duration*/); mImageCross1.setImageResource(0); } else { mImageCross1.setImageResource(mImages[mIndex++]); […]

拉伸图像以适应

src应该将其宽度拉伸到match_parent ,同时保持纵横比。 当图像大于父图像时,它会正确缩小。 但是当图像较小时,它不会向上扩展。 (插图显示了所需的行为)。 使用ScaleType.fitXY仅拉伸width

使用ViewPager +放大ImageViews的图像库

我想要实施什么? 使用ViewPager的图库。 我之所以选择这个选项是因为图像之间的平滑过渡(我使用的是ImageView),它很好并且很容易实现。 我的问题到底是什么? 我已经能够实现所有这些, 但缩放function不起作用。 我可以在LogCat中看到它是如何打印的ZOOM (代码在post的末尾),但图像没有放大。 关于以下代码的几点说明: ImageViewHelperURL.setUrlDrawable((ImageView) img, url, R.drawable.no_image); 我正在使用UrlImageViewHelper从Web上异步下载图像。 api.getListUrls()这是一个ArrayList,我有图片url。 我也试过使用R.drawable的ImageView而不是下载图像 import android.content.Context; import android.content.Intent; import android.graphics.Matrix; import android.graphics.PointF; import android.os.Bundle; import android.support.v4.app.ActionBar; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.Menu; import android.support.v4.view.MenuItem; import android.support.v4.view.ViewPager; import android.util.FloatMath; import android.util.Log; import android.view.LayoutInflater; import android.view.MenuInflater; import android.view.MotionEvent; import android.view.View; import […]

如何覆盖Android库项目中定义的drawable?

我有两个Android应用程序具有类似的function,但不同的drawables和布局。 我想将所有代码和资源放在库项目中,并覆盖引用该库的两个应用程序中的一些drawable和布局。 我创建了一个引用该库的应用程序。 我将所有资源从库复制到应用程序并更改了一些drawable。 我也改变了一些字符串资源。 当我在Eclipse中的布局编辑器中查看其中一个更改的布局时,我看到了正确覆盖的图像。 当我启动应用程序时,我看到我在应用程序中更改的字符串资源正确显示(库字符串被应用程序的资源覆盖),但我的ImageView的drawable都是从库的资源中获取的。 我还对一些布局资源进行了更改(移动并调整了一些图像的大小)。 当我启动一个使用已更改布局的活动(源代码在库中的活动)时,我会看到带有旧(库)drawable的新(应用程序)布局。 我尝试用两种方式定义ImageView的drawable: 在布局xml: android:src=”@drawable/image_id” 在活动的代码中: ImageView view = (ImageView)findViewById(R.id.viewId); view.setImageResource(R.drawable.image_id); 在这两种情况下,我看到的图像都来自库项目的资源,而不是应用程序。 如果我无法解决这个问题,我将不得不复制这两个应用程序中的所有代码,这将是一个耻辱。 难道我做错了什么?

高分辨率图像 – OutOfMemoryError

我正在为Galaxy S4开发一个应用程序。 该应用程序的要求之一是使用包含1920×1080像素的图像的SplashScreen。 它是一个高质量的.jpeg图像,图像的大小约为2兆字节 。 问题是我一启动应用程序就得到一个OutOfMemoryError 。 我很震惊,这已经发生了只有2兆字节的图像? 如何解决此问题并显示图像? 不能选择更改图像的尺寸或大小。 SplashScreen.java public class Splashscreen extends Activity { private static final int SPLASH_DURATION = 2000; private boolean isBackPressed = false; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN, LayoutParams.FLAG_FULLSCREEN); super.onCreate(savedInstanceState); setContentView(R.layout.splashscreen); Handler h = new Handler(); h.postDelayed(new Runnable() { @Override public void run() { // check […]

如何在android中创建video预览?

我的SD卡中有一个video文件。 我想在我的ImageView中展示这个video的预览。 请告诉我如何在Android中执行此操作。 谢谢你的帮助和时间。

将图像裁剪为方形 – Android

如何从左右切割矩形图像(600 x 300)以适合方形ImageView? 我不想调整图像大小,我只想裁剪它,为300 x 300。 [解] 正如@blackbelt所说 Bitmap cropImg = Bitmap.createBitmap(src, startX, startY, dstWidth, dstHeight); 非常适合裁剪图像。 那么如何自动裁剪不同尺寸的图像。 我为此创建了这个简单的代码: // From drawable Bitmap src= BitmapFactory.decodeResource(context.getResources(), R.drawable.image); // From URL Bitmap src = null; try { String URL = “http://www.example.com/image.jpg”; InputStream in = new java.net.URL(URL).openStream(); src = BitmapFactory.decodeStream(in); } catch (Exception e) { e.printStackTrace(); } int […]

如何使用不resize的全屏背景图像(带中心裁剪)

我正在尝试将照片设置为Activity的背景。 我希望背景是一个全屏图像(没有边框) 。 因为我希望图像在没有拉伸/挤压的情况下填充整个活动的背景(即X和Y的不成比例的缩放),我不介意是否必须裁剪照片,我正在使用带有ImageView的RelativeLayout (带有android:scaleType=”centerCrop” )以及我的其余布局,包括ScrollView及其子项。 … 问题是布局的其余部分有一些EditText视图,当软键盘出现时,ImageView会重新resize。 我希望背景保持不变,无论软键盘是否可见。 我已经看到很多关于ImageViews被重新resize的问题但是(imo)没有令人满意的答案。 其中大多数只是设置android:windowSoftInputMode=”adjustPan” – 这并不总是实用的,特别是如果你希望用户能够滚动活动 – 或使用getWindow().setBackgroundDrawable()不裁剪图像。 我设法将ImageView子类化并覆盖其onMeasure() (请参阅我的答案: ImageView在键盘打开时resize )以便它可以强制固定的高度和宽度 – 等于设备的屏幕尺寸 – 根据标志但是我想知道是否有更好的方法来实现我想要的结果。 总而言之,我的问题是: 如何将活动的背景设置为全屏照片 使用scale type =“centerCrop”,使得照片均匀缩放(保持其纵横比),因此两个尺寸(宽度和高度)将等于或大于视图的相应尺寸; popup软键盘时不会resize; 回答: 我最后关注了@pskink的建议并将子类BitmapDrawable (请参阅下面的回答)。 我必须做一些调整,以确保始终按照填充屏幕的方式缩放和裁剪BackgroundBitmapDrawable 。 这是我的最后一堂课,改编自他的回答: public class BackgroundBitmapDrawable extends BitmapDrawable { private Matrix mMatrix = new Matrix(); private int moldHeight; boolean simpleMapping = false; public […]

Android:从SD卡显示图像

这让我疯了! 这是我的代码(我知道这个文件存在): File imageFile = new File(“/sdcard/gallery_photo_4.jpg”); ImageView jpgView = (ImageView)findViewById(R.id.imageView); BitmapDrawable d = new BitmapDrawable(getResources(), imageFile.getAbsolutePath()); jpgView.setImageDrawable(d); 错误发生在最后一行(第28行,如下所示)。 错误输出: W/dalvikvm( 865): threadid=1: thread exiting with uncaught exception (group=0x4001d800) E/AndroidRuntime( 865): FATAL EXCEPTION: main E/AndroidRuntime( 865): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.example.camera/org.example.camera.Imgview}: java.lang.NullPointerException E/AndroidRuntime( 865): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) E/AndroidRuntime( 865): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) E/AndroidRuntime( 865): at android.app.ActivityThread.access$2300(ActivityThread.java:125) […]

带有叠加层的Android可缩放/可滚动ImageView

我想显示一个图像(包括滚动和缩放function)。 另外,我需要动态地为图像添加一些叠加层。 叠加层与图像中的内容有关系。 如果用户滚动,叠加层也应该移动 如果用户缩放,则不应缩放叠加层,而是保持其与图像的相对位置 换句话说:我想用一些标记来实现Map,但我提供了自己的地图材质。 我的主要问题是:我怎么能这样做? 到目前为止我尝试了什么 我尝试在WebView中实现它,因为它提供了基本的缩放和缩放function。 但是,我没有成功添加叠加而不使用Javascript和HTML(我认为这不是解决问题的一种非常方便的方法) 有些项目(即TouchImageView )正在实现滚动/缩放function,但是从我的角度来看,它们更难以添加自己的叠加function。 问题 我的问题有一个简单的解决方案或方法吗? 在Android中运行时添加和移动视图的正确方法是什么? (通常,我会使用基本布局并使用保证金 – 这是最佳做法吗?) 请有人指出我正确的方向。 闵。 API等级:10