相关疑难解决方法(0)

Android:GridView auto_fit如何查找列数?

我想更好地了解Gridview工作方式,特别是auto_fit.这是XML布局:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:columnWidth="60dp"
    android:numColumns="auto_fit"
/>
Run Code Online (Sandbox Code Playgroud)

它可以通过一系列六个缩略图(48*48像素)正常工作.在纵向模式下,它显示一行,六列.

同

我不明白为什么这条线android:columnWidth="60dp"是必要的,因为auto_fit应该找到正确数量的列.
如果没有该行android:columnWidth="60dp",它将显示一个3行和2列的网格.

无

这是ImageAdapter班级:

package com.examples.HelloGridView;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    public int getCount() {
        return mThumbIds.length;
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    } …
Run Code Online (Sandbox Code Playgroud)

android gridview

65
推荐指数
2
解决办法
10万
查看次数

Android布局与方形按钮

我想做一个类似于这个的布局:

www.ImageBanana.net - layout.png http://www.imagebanana.com/img/9kmlhy66/thumb/layout.png

屏幕上有四个方形按钮 - 每个按钮使用屏幕的一半/屏幕高度(以较小者为准).与屏幕尺寸/分辨率无关.

我已经尝试通过使用a实现这一点,LinearLayout但按钮最终使用正确的宽度,但仍然具有背景的高度(不再是正方形).

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button 
            android:layout_height="wrap_content" 
            style="@style/CKMainButton"
            android:layout_width="fill_parent" 
            android:text="@string/sights"
            android:id="@+id/ApplicationMainSight" 
            android:layout_toLeftOf="@+id/ApplicationMainEvent"></Button>

        <Button 
            android:layout_height="wrap_content" 
            style="@style/CKMainButton"
            android:layout_width="fill_parent" 
            android:text="@string/sights"
            android:id="@+id/ApplicationMainSight" 
            android:layout_toLeftOf="@+id/ApplicationMainEvent"></Button>

    </LinearLayout>

    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <Button 
            android:layout_height="wrap_content" 
            style="@style/CKMainButton"
            android:layout_weight="1" 
            android:layout_width="fill_parent"
            android:text="@string/usergenerated" 
            android:id="@+id/ApplicationMainUserGenerated" />

        <Button 
            android:layout_height="wrap_content" 
            style="@style/CKMainButton"
            android:layout_weight="1" 
            android:layout_width="fill_parent"
            android:text="@string/tours" 
            android:id="@+id/ApplicationMainTour"/>

    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:www.ImageBanana.net - layout2.png http://www.imagebanana.com/img/i2ni6g4/thumb/layout2.png

我怎样才能使布局看起来像上面的图像?

xml xslt layout android

12
推荐指数
3
解决办法
2万
查看次数

GridView中的方形项目,具有自适应宽度/高度

我有一个自定义gridview与这样的项目

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="center"
android:longClickable="false"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="false"
    android:focusable="false"
    android:focusableInTouchMode="false"
    android:longClickable="false"
    android:text="0"
    android:textSize="60sp" />

 </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我希望我的项目是正方形,我希望gridview拉伸宽度以纵向填充屏幕的所有宽度和横向的所有高度.它看起来应该是这样的 布局

其中A - 是正方形的边,B是边距宽度(可以是零).我认为我应该覆盖onMeasure方法,但究竟应该怎么做?也许有人可以帮忙吗?

编辑确定,我试图在适配器的getView方法中手动设置项目的宽度和高度,它更好,但它仍然不是我想要的.如何摆脱列之间的间距?

在此输入图像描述

android gridview

8
推荐指数
1
解决办法
2万
查看次数

Android GridView 3 x 6图像裁剪

我想创建一个正方形图像的网格,但是无法使图像按需要显示。我从GridView教程开始:

http://developer.android.com/resources/tutorials/views/hello-gridview.html

这似乎很接近我想要的。

我能看到的唯一区别是,我需要恰好18张图像,并且它们都必须为正方形。我将列数设置为3,然后加载18张图像,然后应在6行中。我希望图像完全填满每一行,并且不要留下任何多余的多余尺寸的间隙。在将图像下载到手机之前,我不知道它们的大小。希望它们一开始会接近正方形,但是我需要裁剪中心使其完全正方形,然后缩放它们以完全填充3列。我需要图像以保留其长宽比。

我似乎找不到使这项工作可用的设置或代码。图像重叠,有缝隙,无法正确缩放或其他错误。

当我的模拟器设置为480x800时,我得到的最接近的是通过如下更改GridView教程:

imageView.setLayoutParams(new GridView.LayoutParams(480/3,480/3));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(0,0,0,0);
imageView.setAdjustViewBounds(true);

====

<网格视图 
    xmlns:android =“ http://schemas.android.com/apk/res/android” 
    android:id =“ @ + id / gridview” 
    android:layout_width =“ fill_parent” 
    android:layout_height =“ fill_parent” 
    android:numColumns =“ 3” 
    android:stretchMode =“ columnWidth” 
    android:gravity =“ fill | clip_horizo​​ntal | clip_vertical”
/> 

这几乎是正确的。我正在使用的方形测试图像缺少几个像素,非方形图像没有被裁剪,而是在内部用黑框保留下来以保持比率,并且硬编码的值很脆弱,无法在所有手机,方向或布局。我觉得很有趣,CENTER_CROP文档似乎声称它将通过扩展以适合图像来实现我想要的功能,但是似乎对CENTER_INSIDE而言。

我感觉很亲密,但从没有得到想要的东西。也许我应该使用GridView以外的其他工具?有什么建议么?

请不要贪吃。

谢谢。

android gridview image scale

5
推荐指数
1
解决办法
3773
查看次数

Android ImageView设置Bitmap FitXY不起作用

我一直在尝试设置位图很长时间以使其适合ImageView边界.

它只是无法正常工作scaleType: fitXY.我的位图图像大小低于ImageView's(保存在100X100像素),我希望我的位图图像适合并伸展到ImageView.

这是一些代码:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/imageView" 
   android:layout_height="match_parent"
   android:layout_width="match_parent"
   android:src="@drawable/locked_image"
   android:scaleType="fitXY"
/>
Run Code Online (Sandbox Code Playgroud)

这是设置的代码ImageView(我scaleType在不同的地方设置测试):

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  final ImageView imageView;
  if (convertView == null) {
    imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
    imageView.setScaleType(ScaleType.FIT_XY);
  } else {
    imageView = (ImageView) convertView;
    imageView.setScaleType(ScaleType.FIT_XY);
  }

  imageLoader.displayImage(imagesIds[position], imageView, options);
  imageView.setScaleType(ScaleType.FIT_XY);
  return imageView;
}
Run Code Online (Sandbox Code Playgroud)

以下是它的外观:

在此输入图像描述

正如你所看到的,高度ImageView很好,但我想它的宽度是一样的.我无法通过我的活动访问我的位图图像,所以请不要让我调整我的位图大小.我真的不明白为什么它不能正常工作.


编辑:
只是为了使问题更容易理解.ImageView计算每个设备的高度.每个设备都不同.我希望我的宽度ImageView与它的高度相同.我正在使用该Two-WayGridView库来显示图像,如果它有任何区别.

android image scale imageview android-imageview

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×5

gridview ×3

image ×2

scale ×2

android-imageview ×1

imageview ×1

layout ×1

xml ×1

xslt ×1