我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初学者,无法理解问题所在.
我想在画布月份的文字垂直沿着屏幕高度绘制.
绘制初始化:
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)

为油漆抗锯齿尝试不同的变化,亚像素文本没有效果.我该如何解决这个问题?
我想实现像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",但它在列表视图中不起作用.结果:

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