小编And*_*rew的帖子

为什么在onResume()的View上调用getWidth()返回0?

我读过的所有内容都说您不能在构造函数中调用getWidth()getHeight()在上调用View,但我在中调用它们onResume()。届时是否应该绘制屏幕布局?

@Override
protected void onResume() {
    super.onResume();

    populateData();
}

private void populateData() {
    LinearLayout test = (LinearLayout) findViewById(R.id.myview);
    double widthpx = test.getWidth();
}
Run Code Online (Sandbox Code Playgroud)

android android-layout activity-lifecycle android-view android-viewtreeobserver

9
推荐指数
2
解决办法
2559
查看次数

使用CursorAdapter的ListView分隔符

我有一个使用CursorAdapter填充的ListView.我还希望在ListView中有一些分隔符.我用ArrayAdapter完成了这个,但是我不知道如何使用CursorAdapter完成这个.这样做有什么策略吗?还是我运气不好?

android listview listviewitem separator

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

ListView标题占据一个位置有充分的理由吗?

我刚刚在ListView中添加了一个标题,我不得不更改一堆代码,因为标题基本上变为位置0(意味着我的CursorAdapter的Cursor索引与列表的标记不对齐.它们关闭了1现在).为什么?这对我来说似乎有点傻.

我能想出的唯一原因是开发人员可能想要访问标题.精细.提供类似getListView().getHeader()的东西.

android listview header cursor

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

ImageView不会填充父级

我的一个屏幕上有一个ScrollView.我希望右边有阴影.我决定最简单的方法是让ScrollView的子项成为RelativeLayout,并有两个RelativeLayout的子项 - 一个是LinearLayout,它将容纳屏幕的布局,第二个View是阴影.

像这样......

<ScrollView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:scrollbars="none" >

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

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                <!-- stuff -->
                </LinearLayout>

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="fill_parent"
                    android:src="@drawable/shadow"
                    android:layout_alignParentRight="true"
                    />
            </RelativeLayout>
        </ScrollView>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不太有效.ImageView强制其尺寸为图像文件的大小.它不会垂直拉伸成RelativeLayout的高度.我也试过"match_parent"无济于事.图像是9补丁.

想法?

android scrollview relativelayout

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

替换位图中的颜色

我有我在我的应用程序中显示的图像.它们是从网上下载的.这些图像是几乎白色背景上的对象的图片.我希望这个背景是白色的(#FFFFFF).我想,如果我看一下像素0,0(应该总是灰白色),我可以得到颜色值并用白色替换图像中的每个像素.

之前已经问过这个问题,答案似乎是这样的:

int intOldColor = bmpOldBitmap.getPixel(0,0);

Bitmap bmpNewBitmap = Bitmap.createBitmap(bmpOldBitmap.getWidth(), bmpOldBitmap.getHeight(), Bitmap.Config.RGB_565);
Canvas c = new Canvas(bmpNewBitmap);
Paint paint = new Paint();

ColorFilter filter = new LightingColorFilter(intOldColor, Color.WHITE);
paint.setColorFilter(filter);
c.drawBitmap(bmpOriginal, 0, 0, paint);
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.

运行此代码后,整个图像似乎是我想要删除的颜色.如同,现在整个图像是1纯色.

我也希望不必遍历整个图像中的每个像素.

有任何想法吗?

android bitmap

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

使用选框椭圆形在TextView上设置textIsSelectable会添加椭圆

我的应用程序中的一个屏幕可能会发送一个非常长的字符串TextView.对于这种情况,我android:ellipsize="marquee"设置了文本将在TextView上进行选取.

但是,我已经决定我也想要这个文本是可选择的(android:textIsSelectable="true").在大多数情况下,这没有问题.文本小于TextView,用户可以选择它.但是,如果我有textIsSelectable属性并且文本大于TextView,则文本将拾取椭圆而不是完整字符串. 它仍然是字幕,但它不再显示全文.它会将其剪掉并显示椭圆形.

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="?android:attr/listPreferredItemHeightSmall"
        android:ellipsize="marquee"
        android:focusable="true"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textIsSelectable="true">
Run Code Online (Sandbox Code Playgroud)

有没有办法让文本可选并仍然保持整个字符串(没有椭圆)?

android textview

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

使用TextViews结束椭圆问题

哇SDK,哇......

所以我试图在它离开屏幕之前在我的TextView(单行)的末尾添加一个椭圆.我读过椭圆是破了(开发为2.1)?在Google搜索之后,每个人似乎都建议将inputType设置为text,将maxLines设置为1,然后您将得到一个椭圆.

这有两个问题:1)文本在屏幕上运行,但不是椭圆形.我可以告诉文字正在屏幕上运行,因为屏幕边缘只显示一半字符,但它不会打印"...".2)当我在TextView上设置inputType时,单击我的列表项不再有效!单击时没有突出显示,并且onListItemClick处理程序不会触发!

所以...

我能在这做什么?

我想指出,有两种方法可以椭圆化.如果整个单词不适合屏幕,请隐藏整个单词并添加椭圆.或者,只需取下足够的字符,以便椭圆适合.理想情况下,后者是我想要的.

谢谢你的帮助

android ellipse textview

7
推荐指数
1
解决办法
9831
查看次数

渐变风格

在我的Android应用程序中,我隐藏了默认标题栏,引入了TabView并在TabView的选项卡下添加了我自己的标题栏.目前,我正在使用?android:attr/windowTitleStyle样式,这使我的新标题栏显示为灰色和渐变.它看起来不错,但我的屏幕看起来非常灰度.我想通过使这个标题栏成为不同的颜色渐变来增加一些东西.

我在这看什么?创建我自己的图像并使用它??android:attr/windowTitleStyle样式似乎会根据自定义标题栏的高度进行扩展; 所以我不确定它实际上是一个单一的图像.

我尝试用一​​点半透明的方式抛出一个LinearLayout(例如:使颜色为#800000FF),但我在此LinearLayout后面的渐变样式消失了.

谢谢你的帮助

更新:

根据我在下面的回答,我发现我可以创建一个定义渐变的XML文件并使用它.它在我的布局上的LinearLayout(titlebar_gradient)中工作正常.但是,它不适用于最外层的LinearLayout(background_gradient).有人能告诉我为什么吗?据我了解,ListView应该是透明的......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@drawable/background_gradient"
 >
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="horizontal"
  android:layout_width="fill_parent"
  android:layout_height="47dip"
  android:background="@drawable/titlebar_gradient"
  android:gravity="center">
  <TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:text="Item"
   style="?android:attr/windowTitleStyle"
   android:paddingLeft="5dip"
   android:maxLines="1"
   android:ellipsize="end" />
 </LinearLayout>
    <ListView
     android:id="@+id/android:list"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
  android:paddingTop="10dip"
  android:clickable="false"
    />
 <TextView
     android:id="@+id/android:empty"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
    />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android gradient titlebar android-titlebar

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

请求按网络更新位置的问题

我创建了一个服务并抓取有关用户的位置数据,以便我可以在附近的地方显示我的用户.我希望此服务除了GPS之外还可以通过网络进行跟踪,原因有两个:1)GPS可能无法启用.2)GPS需要相当多的时间来锁定我的测试手机.

当我的服务执行以下行时:

mNETEnabled = mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

11-24 14:00:41.693: ERROR/LocationManagerService(51): isProviderEnabled got exception:
11-24 14:00:41.693: ERROR/LocationManagerService(51): java.lang.IllegalArgumentException: provider=network
11-24 14:00:41.693: ERROR/LocationManagerService(51):     at com.android.server.LocationManagerService._isProviderEnabledLocked(LocationManagerService.java:1385)
11-24 14:00:41.693: ERROR/LocationManagerService(51):     at com.android.server.LocationManagerService.isProviderEnabled(LocationManagerService.java:1359)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我是否错过了Manifest的许可?我的清单中有ACCESS_COARSE_LOCATION.

permissions android locationmanager

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

使用ContentProvider执行复杂原始查询的优雅方式

我使用a ContentProvider与我的应用程序的数据库说话,我遇到了一些问题.

我有一个稍微复杂的查询.它看起来像这样:

String sql =
    "select " +
    "  tblHistory._id _id, " +
    "  tblHistory.item item, " +
    "  tblHistory.updated_on updated_on, " +
    "  (select _id from tblList " +
        "where tblList.item = tblHistory.item) list_id, " +
    "  1 priority, " +
    "from " +
    "  tblHistory " +
    "where " +
    "  tblHistory.status <> 'STATE_DELETING' and " + selection + " " +
    "union " +
    "select " +
    "  tblSearch._id _id, " +
    "  tblSearch.item item, …
Run Code Online (Sandbox Code Playgroud)

android android-contentprovider

7
推荐指数
1
解决办法
1882
查看次数