我有一个ListView,它可以是全屏宽度(手机),也可以是宽度的1/3(如果它是横向平板电脑).在列表中,它将显示远程服务器上的映像.
显然,图像下载图像可能需要一些时间,因此,在JSON数据中,我将图像的平均颜色设置为十六进制,以及图像的比例.我想要的是,在适配器中,用正确大小的平均颜色填充图像.我使用此代码将颜色部分缩小了
final ColorDrawable cd = new ColorDrawable(Color.parseColor(blog.getAverageColor()));
Picasso.with(getContext()).load(blog.getFullPath()).placeholder(cd).into(img);
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用这个尺寸.我最初的想法是在视图上调用getWidth(),然后通过blog.getRatio()对其进行计时,然后将图像高度设置为该值,并将宽度设置为视图的宽度.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = getLayoutInflater(null).inflate(r, parent, false);
}
if (view == null) {
return null;
}
int width = view.getWidth();
Run Code Online (Sandbox Code Playgroud)
但是,宽度始终为0.如何获得视图的宽度?或者这是不可能这样做的?
您可以通过调用获得listView的宽度parent.getWidth(). parent是一个视图,您的视图将附加到.因此,您的视图将具有相同的大小.
view.getWidth() 返回0,因为此时您的视图并未真正添加到ListView.
| 归档时间: |
|
| 查看次数: |
2303 次 |
| 最近记录: |