android – ImageView正在重新调整大小,同时绘制边框形状

android – ImageView正在重新调整大小,同时绘制边框形状,第1张

概述这是我放在我的drawable文件夹中的shape_two文件. <shape xmlns:android="http://schemas.android.com/apk/res/android" ><solid android:color="#00FFFFFF" /><stroke android:width="3dp" android:color="#00ff00" / 这是我放在我的drawable文件夹中的shape_two文件.
<shape xmlns:androID="http://schemas.androID.com/apk/res/androID" ><solID androID:color="#00FFFFFF" /><stroke    androID:wIDth="3dp"    androID:color="#00ff00" /></shape>

这是我绘制形状的代码

private voID drawLayer(ImageVIEw tempVIEw,Drawable drble,int wherecall) {    Drawable drawableRes = getResources()            .getDrawable(R.drawable.shape_two);// loadDrawable(R.drawable.shape_two);            int h = tempVIEw.getMeasuredHeight();    int w = tempVIEw.getMeasureDWIDth();    drawableRes.setBounds(0,w,h);    Drawable[] drawableLayers = { drble,drawableRes };    ld = new LayerDrawable(drawableLayers);    if (wherecall != 3) {        tempVIEw.setBackground(ld);    } else {        tempVIEw.setimageDrawable(ld);    }    td = new TransitionDrawable(drawableLayers);    td.setCrossFadeEnabled(true);}

这里tempvIEw是我的ImageVIEw和drble是另一个drawable我在另一层使用.此代码没有任何错误消息正常工作.

我的问题是当我在我的ImageVIEws上绘制形状时,它会重新调整大小(更改高度和宽度).我有不同大小的imageVIEw,我想使用单一形状的xml绘制边框,我的ImageVIEw大小不应该这样做.任何人都可以告诉我如何实现它.

搜索了很多东西后我才知道我不能对它进行位图 *** 作,根据形状重新调整大小,因为xml文件不是位图.我在某地读过这个问题可以通过使用canvas来解决但是怎么做..

更新:

我观察到,虽然更改图层onsingletap只有高度增加而不是ImageVIEw的宽度.如果我的布局有4个ImageVIEw,那么第一次只在不同的imageVIEw上单击,所有imageVIEw重新调整大小一次.之后,如果我们再次点击 – 再没有什么可以重新调整大小.
我想在第一次在ImageVIEw重新设置视图上设置图层,然后调整自己.我不知道为什么会发生这种情况.

我正在为我的所有布局应用相同的代码,对于某些布局,它的工作正常,有些则不是.

我还试过了什么.

>我已经尝试通过GradIEntDrawable制作边框图像

GradIEntDrawable gd = new GradIEntDrawable();     gd.setstroke(3,color.GREEN);     gd.setSize(drble.getBounds().wIDth(),drble.getBounds().height());     gd.setcolor(0xff424242);

>我的另一个尝试是在画布上绘制图像,
>将边框图像放在可绘制文件夹中,根据ImageVIEw的高度和宽度重新调整它,将其转换为drawable并进行设置.
>我还试图减少内部图像大小和边框位图大小是图像视图的大小,也是相反的.

每件事都给我相同的结果.

UPDATE

请仔细阅读我的答案,你可能会发现搜索得到50分并获得50分.

解决方法 经过艰苦的努力,用了很多方法,花了一天一夜的时间进行搜索,最终我找到了这三条线的解决方案.
ld.setBounds(0,tempVIEw.getWIDth(),tempVIEw.getHeight());    ld.setLayerInset(0,1,1);    ld.setLayerInset(1,0);

如果你仍然有重新调整大小的问题,请在你的形状xml布局中给出一些填充.这可以节省一些人的时间.

总结

以上是内存溢出为你收集整理的android – ImageView正在重新调整大小,同时绘制边框形状全部内容,希望文章能够帮你解决android – ImageView正在重新调整大小,同时绘制边框形状所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1141048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存