gpt4 book ai didi

android - 九补丁内容区域不起作用

转载 作者:太空狗 更新时间:2023-10-29 14:57:59 25 4
gpt4 key购买 nike

我正在尝试将 TextView 的框架制作成云。但是内容区域的行为并不像预期的那样。我究竟做错了什么? enter image description here

nine-patch not working

enter image description here

最佳答案

我有一个建议无法正常工作,因为内容区域较少缩放区域。好难过。我重新制作它以手动处理 9-p​​atch。保存不带 .9.png 的图片。获取位图。目前有9行。使用 getPixels 计算填充并将其设置在 TextView 上。然后计算并设置 LayoutParams.width 和 LayoutParams.height。看起来有点难看,但它工作得相当快,最重要的是正确。

private int startX=-1;
private int endX=-1;
private int contentW=-1;
private int contentH=-1;

Bitmap bmp=BitmapFactory.decodeResource(getResources(), mIconResId);
int[] pixels=new int[bmp.getWidth()*bmp.getHeight()];
bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0, bmp.getWidth(),bmp.getHeight());
for(int i=0;i<bmp.getWidth();i++){
if(startX==-1 && pixels[bmp.getWidth()*(bmp.getHeight()-1)+i]==Color.BLACK){
startX=i;
}
if(startX!=-1 && pixels[bmp.getWidth()*(bmp.getHeight()-1)+i]!=Color.BLACK){
endX=i;
break;
}
}
int startY=-1;
int endY=-1;
for(int i=0;i<bmp.getHeight();i++){
if(startY==-1 && pixels[bmp.getWidth()*(i+1)-1]==Color.BLACK){
startY=i;
}
if(startY!=-1 && pixels[bmp.getWidth()*(i+1)-1]!=Color.BLACK){
endY=i;
break;
}
}

setBackground(new BitmapDrawable(getResources(),Bitmap.createBitmap(bmp, 1, 1, bmp.getWidth()-2, bmp.getHeight()-2)));

contentW=endX-startX;
endX=bmp.getWidth()-endX;
contentH=endY-startY;
endY=bmp.getHeight()-endY;

new Handler().post(new Rannable(){
@Override
public void run() {
int w=textview.getWidth();
int h=textview.getHeight();

if(w>endX-startX){
float k=((float)w)/contentW;
startX=(int) (startX*k);
endX=(int) (endX*k);
}
if(h>endY-startY){
float k=((float)h)/contentH;
startY=(int) (startY*k);
endY=(int) (endY*k);
}

w+=startX+startX;
h+=startY+endY;
textview.setPadding(startX, startY, endX, endY);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(w,h);
textview.setLayoutParams(lp);
}
});

关于android - 九补丁内容区域不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29651960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com