小编Sas*_*h0k的帖子

Android自定义RatingBar图像工件

RatingBar在我的ListView项目的应用程序中实现了自定义.自定义样式ratingbar_red.xml:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/star_off" />
    <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/star_on" />
    <item android:id="@android:id/progress" android:drawable="@drawable/star_on" />
</layer-list>
Run Code Online (Sandbox Code Playgroud)

这是ListItem布局的一部分:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingLeft="15dp" >

    <RatingBar
        android:id="@+id/li_company_rating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:layout_marginBottom="1dp"
        android:isIndicator="true"
        android:numStars="5"
        android:progressDrawable="@drawable/ratingbar_red"
        android:stepSize="1" />

    <Button
        android:id="@+id/li_company_callbtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="0dp"
        android:layout_marginLeft="40dp"
        android:contentDescription="@string/ContentDescription"
        android:drawableLeft="@drawable/phone_icon"
        android:drawablePadding="5dp"
        android:onClick="callbtn_Click"
        android:text="@string/CallButton"
        android:focusable="false"
        android:focusableInTouchMode="false" >
    </Button>

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

它可以工作,但是当设置评级时,我会得到一些奇怪的图像工件; 粉红色星星下面有2条垂直线出现在我的视图中:

在此输入图像描述

这是star_on.png

链接

star_off.png看起来没问题,如果评级== 0,则不显示这些行.

我是android初学者,无法理解问题所在.

layout android rating

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

如何在画布上绘制大尺寸文字?

我想在画布月份的文字垂直沿着屏幕高度绘制.

绘制初始化:

   this.paint = new Paint();
   this.paint.setAntiAlias(true);
   this.paint.setDither(true);
   this.paint.setSubpixelText(true);
   this.paint.setColor(color_text_dark);
   this.paint.setTextAlign(Align.RIGHT);
Run Code Online (Sandbox Code Playgroud)

画画:

   // Set the scale to the widest month
   float scale = getHeight() / this.max_month_width;
   String month_string = FULL_MONTH_NAME_FORMATTER.
                         format(active_month_calendar.getTime());
   canvas.save();
   canvas.translate(getWidth(), 0);
   canvas.rotate(-90);
   canvas.scale(scale, scale);
   canvas.drawText(month_string, 0, 0, this.paint);
   canvas.restore();
Run Code Online (Sandbox Code Playgroud)

结果在hdpi屏幕上看起来不错,但在xhdpi上非常难看和像素化.

我在各种设备上做了更多测试,并了解结果取决于Android版本,而不是屏幕密度和分辨率.

代码在2.x平台上运行良好,但在4.0.3+上不起作用.假设,这里改变了Android绘图实现.完整代码,你可以在这里看到.

hdpi版本 2.3.5(也测试 2.2)

华电国际

xhdpi版本 4.2(也测试了 4.1, 4.0.3)

xhdpi

为油漆抗锯齿尝试不同的变化,亚像素文本没有效果.我该如何解决这个问题?

android drawtext android-canvas

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

Listview中的左右对齐行

我想实现像iphone sms这样的界面:

怎么做

现在我与自定义ChatAdapter聊天listview,来自不同布局的传入和传出消息膨胀:

出局布局:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:background="@drawable/question_bubble"
    android:paddingBottom="10dp"
    android:paddingLeft="20dp"
    android:paddingRight="27dp"
    android:paddingTop="10dp"
    android:textColor="@color/BlackColor"
    android:textSize="18sp" />
Run Code Online (Sandbox Code Playgroud)

传入布局:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left"
    android:autoLink="all"
    android:background="@drawable/answer_bubble"
    android:paddingLeft="27dp"
    android:paddingRight="20dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"    
    android:textColor="@color/BlackColor"
    android:textSize="18sp"/>
Run Code Online (Sandbox Code Playgroud)

我使用"layout_gravity",但它在列表视图中不起作用.结果:

我的界面

如何将问题消息对齐到右侧?

android listview

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

标签 统计

android ×3

android-canvas ×1

drawtext ×1

layout ×1

listview ×1

rating ×1