关于密度的 Material 太多了,multiple screen support , 这么多 questions on SO , 但我仍然没有得到它。
我的目标很简单:显示与 ImageView 可用空间一样大的位图。我需要 BitMap,因为我要对其进行一些操作。
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/figureView" />
我将在位图中使用一些图片。我会将它们放在 drawables 目录中。我将使用 R.drawable.pictureX 引用它们。我将使用 Picasso 加载它们并缩放它们:
Bitmap bitmap = Picasso.with(getContext()).load(resourceId).resize(w, h).get();
我不清楚的部分是所有那些 xxhdpi 文件夹和 Android 启发式选择最好的。
当文档说 Android 会自动缩放图像时,它适用于我的情况吗?我不想缩放已经缩放的图片。
我应该在我的案例中存储多少 dpi 变体以及存储在哪里?我应该在 no-dpi 文件夹中有单个文件还是应该为每个 dpi 文件夹创建图片变体?
如何确定图片资源的尺寸?图标很容易:例如 24x24 dpi,然后将其与 DPI 公式相乘。但我想覆盖整个屏幕高度。一章配置示例列出了:240x320 ldpi、320x480 mdpi、480x800 hdpi、720x1280 mdpi、800x1280 mdpi 等。资源没有屏幕尺寸限定符。
感谢您的澄清。
最佳答案
我意识到其实很容易找出 Android 的行为。我只需要每个不同的 DPI 变体,这样我就可以区分它们。我在每张图片中放置了一个带有 DPI 名称和像素分辨率的文本。
有一个sample GitHub Test DPI project .它有两个 ImageView。第一个是从 XML 初始化的,Android 进行缩放。第二个是我用 BitMap 填充的占位符。我输入 200dp 作为它的大小,这是正确的。 MDPI 的像素大小 = dp 中的大小。
我发现的是合乎逻辑的。 Android 对我的 Intent 一无所知。它只是为当前 DPI 选择最佳可用资源。
Nexus 5x 默认使用 XXHDPI,Samsung SIII Mini 使用 HDPI。如果我删除他们的默认 DPI 文件夹,他们会缩小更高的可用变体:XXXHDPI 和 XHDPI。如果我删除除 NODPI 之外的所有变体,将使用它。
最后,如果我将从源代码动态加载的 ImageView 的尺寸更改为 300dp,那么它将被缩放并且看起来很难看。 Android 无法在执行 decodeResource 时知道我稍后会对其进行缩放并且有更好的可用资源。
仍然未知的是如何找到适合屏幕的图片尺寸。
Java:
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inScaled = false;
Bitmap figureBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_test, opt);
ImageView imageView=(ImageView) findViewById(R.id.testView);
imageView.setImageBitmap(figureBitmap);
Activity :
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_test" />
<ImageView
android:id="@+id/testView"
android:layout_width="200dp"
android:layout_height="200dp" />
8 月 30 日更新
原图:230x541 px,载入
Picasso.with(getContext()).load(R.drawable.amalka).into(target)
nodpi中,加载为230x541 px Bitmapxxhdpi中,加载为230x541 px Bitmap关于android - 在 Android 和 Picasso 中缩放图像资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39173618/
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
我正在尝试使用Ruby2.0.0和Rails4.0.0提供的API从imgur中提取图像。我已尝试按照Ruby2.0.0文档中列出的各种方式构建http请求,但均无济于事。代码如下:require'net/http'require'net/https'defimgurheaders={"Authorization"=>"Client-ID"+my_client_id}path="/3/gallery/image/#{img_id}.json"uri=URI("https://api.imgur.com"+path)request,data=Net::HTTP::Get.new(path
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/
我正在使用Dragonfly在Rails3.1应用程序上处理图像。我正在努力通过url将图像分配给模型。我有一个很好的表格:{:multipart=>true}do|f|%>RemovePicture?Dragonfly的文档指出:Dragonfly提供了一个直接从url分配的访问器:@album.cover_image_url='http://some.url/file.jpg'但是当我在控制台中尝试时:=>#ruby-1.9.2-p290>picture.image_url="http://i.imgur.com/QQiMz.jpg"=>"http://i.imgur.com/QQ
我对图像处理完全陌生。我对JPEG内部是什么以及它是如何工作一无所知。我想知道,是否可以在某处找到执行以下简单操作的ruby代码:打开jpeg文件。遍历每个像素并将其颜色设置为fx绿色。将结果写入另一个文件。我对如何使用ruby-vips库实现这一点特别感兴趣https://github.com/ender672/ruby-vips我的目标-学习如何使用ruby-vips执行基本的图像处理操作(Gamma校正、亮度、色调……)任何指向比“helloworld”更复杂的工作示例的链接——比如ruby-vips的github页面上的链接,我们将不胜感激!如果有ruby-
我正在尝试将一个资源属性的默认值设置为另一个属性的值。我正在为我正在构建的tomcat说明书定义一个资源,其中包含以下定义。我想要可以独立设置的“名称”和“服务名称”属性。当未设置服务名称时,我希望它默认为为“名称”提供的任何内容。以下不符合我的预期:attribute:name,:kind_of=>String,:required=>true,:name_attribute=>trueattribute:service_name,:kind_of=>String,:default=>:name注意第二行末尾的“:default=>:name”。当我在Recipe的新block中引用我