Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
相当于android的代码:Croptoppadding_Android_Imageview - Fatal编程技术网

相当于android的代码:Croptoppadding

相当于android的代码:Croptoppadding,android,imageview,Android,Imageview,在我的android应用程序中,我通过以下方式创建xml缩略图: <ImageView android:id="@+id/my_thumbnail android:layout_width="50dp" android:layout_height="50dp" android:background="@color/white" android:padding="2dp" andro

在我的android应用程序中,我通过以下方式创建xml缩略图:

<ImageView android:id="@+id/my_thumbnail
           android:layout_width="50dp"
           android:layout_height="50dp"
           android:background="@color/white"
           android:padding="2dp"
           android:scaleType="fitXY"
           android:cropToPadding="true" />
请注意,该文件包含根元素和几个其他元素。然而,所有其他文件都只是引用的表单布局xml文件

然后,我在网格视图适配器中添加了以下代码:

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {
        XmlPullParser parser = mContext.getResources().getXml(R.style.GridImage);
        AttributeSet attributes = Xml.asAttributeSet(parser);
        imageView = new ImageView(mContext, attributes);
        // ... some more initialisation
    } else {
        imageView = (ImageView) convertView;
    }

    // ... code to create the bitmap and set it into the ImageView goes here
}
这编译得很好,即存在R.style.GridImage。但是,当我运行这段代码时,应用程序在getXmlR.style.GridImage上因Resources.NotFoundException而崩溃


有什么建议吗?

您可以从ImageView本身获取缩略图。在每个imageview上调用getDrawingCache以获取用于绘制的位图

最新更新: 在xml文件夹中创建一个xml myimage_attrs.xml,并向其中添加所需的所有imageview属性

<?xml version=”1.0″ encoding=”utf-8″?>
<item name=”android:layout_height”>10dp</item>
<item name=”android:layout_width”>10dp</item>
<item name="android:background">@color/white</item>
<item name="android:padding">2dp</item>
<item name="android:cropToPadding">true</item>
<item name="android:typeface">monospace</item>
....

您可以从ImageView本身获取缩略图。在每个imageview上调用getDrawingCache以获取用于绘制的位图

最新更新: 在xml文件夹中创建一个xml myimage_attrs.xml,并向其中添加所需的所有imageview属性

<?xml version=”1.0″ encoding=”utf-8″?>
<item name=”android:layout_height”>10dp</item>
<item name=”android:layout_width”>10dp</item>
<item name="android:background">@color/white</item>
<item name="android:padding">2dp</item>
<item name="android:cropToPadding">true</item>
<item name="android:typeface">monospace</item>
....

为了其他人的利益,以下是由于userSeven7s将我推向了正确的方向,我终于成功了

我使用以下内容创建了grid_image.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<style>
    <item name="android:layout_height">50dp</item>
    <item name="android:layout_width">50dp</item>
    <item name="android:background">@color/white</item>
    <item name="android:padding">2dp</item>
    <item name="android:cropToPadding">true</item>
    <item name="android:scaleType">fitXY</item>
</style>

为了其他人的利益,以下是由于userSeven7s将我推向了正确的方向,我终于成功了

我使用以下内容创建了grid_image.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<style>
    <item name="android:layout_height">50dp</item>
    <item name="android:layout_width">50dp</item>
    <item name="android:background">@color/white</item>
    <item name="android:padding">2dp</item>
    <item name="android:cropToPadding">true</item>
    <item name="android:scaleType">fitXY</item>
</style>

如果使用AttributeSet和attributes尝试解决方案。getAttributeCount始终返回0,那么剩下的唯一解决方案就是使用反射的黑客攻击:

Field field = ImageView.class.getDeclaredField("mCropToPadding");
field.setAccessible(true);
field.set(imageView, true);
使用它,你可能无法确定它是否能在其他android固件版本中工作。
无论如何,丢失的setter可能只是被遗忘了,因此我认为这是黑客攻击的正当理由。

如果您尝试使用AttributeSet和attributes的解决方案。getAttributeCount始终返回0,那么剩下的唯一解决方案就是使用反射的黑客攻击:

Field field = ImageView.class.getDeclaredField("mCropToPadding");
field.setAccessible(true);
field.set(imageView, true);
使用它,你可能无法确定它是否能在其他android固件版本中工作。
不管怎么说,丢失的二传手可能只是被遗忘了,因此我有理由这样做。

对不起,这与我的问题无关。我不是在问如何得到缩略图。我需要知道如何在代码中将ImageView设置为cropToPadding。@useSeven7s:no,setPadding相当于XML中的android:padding;android:Croptoppadding是完全不同的东西。刚刚开始尝试,在第XMLPullParser parser=mContext.getResources.getXmlR.style.GridImage行上得到错误资源$NotFoundException;有什么想法吗?这和你描述的不完全一样,因为它缺少一些东西。然而,我最终还是成功地让它发挥作用。为了其他可能正在查看此问题的人的利益,我将把完整的解决方案发布到单独的答案中,并且仍然会接受您的答案,因为它让我朝着正确的方向思考。对不起,这与我的问题无关。我不是在问如何得到缩略图。我需要知道如何在代码中将ImageView设置为cropToPadding。@useSeven7s:no,setPadding相当于XML中的android:padding;android:Croptoppadding是完全不同的东西。刚刚开始尝试,在第XMLPullParser parser=mContext.getResources.getXmlR.style.GridImage行上得到错误资源$NotFoundException;有什么想法吗?这和你描述的不完全一样,因为它缺少一些东西。然而,我最终还是成功地让它发挥作用。为了其他可能正在查看此问题的人的利益,我将把完整的解决方案发布到单独的答案中,并且仍然会接受您的答案,因为它让我朝着正确的方向思考。显示一些创建ImageView的代码。您已经添加了有效的代码,而应该是无效的代码..我无法显示代码-因为我找不到相应的代码。在这里的文档中,除了android:cropToPadding之外,所有XML元素都显示了等效代码。这是否意味着没有等效的方法?是的,似乎没有等效的方法。显示一些创建ImageView的代码。您已经添加了有效的代码,而应该是无效的代码..我无法显示代码-因为我找不到相应的代码。在这里的文档中,除了android:cropToPadding之外,所有XML元素都显示了等效代码。这是否意味着没有等效的方法?是的,似乎没有等效的方法。不确定此xml文件在旧的android sdk api上是否有效。对我来说,为了让解析器正常工作,我必须创建一个包含常规imageview标记的xml:不确定这个xml文件在旧的android sdk api上是否有效。对我来说,为了让解析器正常工作,我必须创建一个包含常规imageview标记的xml: