gpt4 book ai didi

android - 如何在 ImageView 中缩放自己的可绘制对象

转载 作者:行者123 更新时间:2023-11-29 21:31:12 25 4
gpt4 key购买 nike

我试图将自己的可绘制对象添加到 ImageView。我希望 drawable 适合 ImageView。但是如果我的分辨率太小,drawable 就会比 ImageView 大。

这是我的 ImagaView:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
...
<ImageView
android:layout_width="match_parent"
android:layout_height="250dip"
android:id="@+id/tvWeekStats"
android:layout_below="@+id/llTimer"
android:layout_margin="5dip"
android:scaleType="fitXY"
android:adjustViewBounds="true"
/>
</RelativeLayout>
</ScrollView>

这是我的可绘制对象:

public class WeekdayDrawable extends Drawable {

private Paint paint;

public WeekdayDrawable() {
this(new StatsWeekday());
}

public WeekdayDrawable(StatsWeekday ownTeam) {
paint = new Paint();
paint.setStyle(Style.FILL);
}

@Override
public void draw(Canvas canvas) {
try {
canvas.save();

paint.setColor(Color.WHITE);
canvas.drawLine(0, 0, 700, 0, paint);
canvas.drawLine(0, 10, 600, 10, paint);
canvas.drawLine(0, 20, 500, 20, paint);
canvas.drawLine(0, 30, 400, 30, paint);
canvas.drawLine(0, 40, 300, 40, paint);

canvas.drawRect(33, 60, 77, 77, paint );
paint.setColor(Color.YELLOW);
canvas.drawRect(33, 33, 77, 60, paint );
paint.setColor(Color.WHITE);
paint.setTextSize(20);

canvas.drawText("Some Text", 10, 25, paint);
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public void setAlpha(int alpha) {
// Has no effect
}

@Override
public void setColorFilter(ColorFilter cf) {
// Has no effect
}

@Override
public int getOpacity() {
// Not Implemented
return 0;
}

        Drawable weekStats;
weekStats = new WeekdayDrawable(weekDayData);


tvWeekStats.setImageDrawable(weekStats);

感谢您的帮助

最佳答案

您不应该像这样使用静态宽度和高度 canvas.drawLine(0, 0, 700, 0, paint);。使用 getHeight() 和 getWidth() 的分数代替,例如:

canvas.drawLine(0, 0, getHeight()/2, 0, paint);

左右。然后缩放问题自行解决

关于android - 如何在 ImageView 中缩放自己的可绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com