private int DEFAULT_SIZE = 80;
public Paint mOuterCirclePaint = new Paint();
@Override
protected void onDraw(Canvas canvas) {
mOuterCirclePaint.setStyle(Style.STROKE);
mOuterCirclePaint.setStrokeWidth(5.0f);
mOuterCirclePaint.setDither(true);
mOuterCirclePaint.setAntiAlias(true);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(
DEFAULT_SIZE + 5
+ (int) mOuterCirclePaint.getStrokeWidth() / 2,
DEFAULT_SIZE + 5
+ (int) mOuterCirclePaint.getStrokeWidth() / 2);
}
public void setSize(int defaultSize) {
DEFAULT_SIZE = defaultSize;
invalidate();
我不认为为每个决议创建新视图是一个好主意。我尝试将视图缩放为default_size
乘以设备的密度(float scale=getResources().getdisplaymetrics().density;
),但这对低分辨率设备没有影响,但在高分辨率设备上,视图占用了整个屏幕(您看不到)
那么为不同设备制作自定义视图的最佳方式是什么呢?是我说的对还是有别的方法?
您可以使用维度资源并使用
int defaultSize = (int)context.getResources().getDimension(R.dimen.default_size);
在自定义视图的构造函数中,在res/values/dimes.xml中使用:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="default_size">80dp</dimen>
</resources>
现在,由于设备屏幕的密度,尺寸将被缩放。
public class MeasuredView extends View
{
private int m_defaultSize;
public MeasuredView(Context context)
{
super(context);
init(context);
}
public MeasuredView(Context context, AttributeSet attrs)
{
super(context, attrs);
init(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(m_defaultSize, m_defaultSize);
}
private void init(Context context)
{
m_defaultSize = (int)context.getResources().getDimension(R.dimen.default_value);
}
}
public void setDefaultSizeDp(int defaultSizeDp)
{
int defaultSizePx = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, defaultSizeDp, getResources().getDisplayMetrics());
m_defaultSize = defaultSizePx;
invalidate();
}
英文原文:http://emberjs.com/guides/views/customizing-a-views-element 视图在页面上表现为一个单一的DOM元素。通过修改tagName属性,可以改变视图生成的元素的类型。 1 2 3 App.MyView = Ember.View.extend({ tagName: 'span' }); 另外,还可以通过设置一个字符串数组到clas
获取设备配置信息 根据业务需求获取设备 配置的各种信息。 参数说明 字段 类型 必须 备注 device RKDevice 是 设备 namespace String 是 存储空间、根据业务填写 key String 是 信息存储Key 示例代码 Swift: RokidMobileSDK.device.getServiceInfo(device: RKDevice, namespace: Str
获取设备配置信息 根据业务需求获取设备 配置的各种信息。 参数说明 字段 类型 必须 备注 deviceId String 是 设备Id namespace String 是 存储空间、根据业务填写 key String 是 信息存储Key 示例代码: Kotlin val deviceId: String = "XXX" val namespace: String = "YYY" val ke
我正在为Wordpress站点构建一个自定义博客列表页面,并尝试使用自定义图像大小。图像的高度应为硬300px。所有图像都比这个高,所以不用担心更小的图像。 我想要的宽度是500px。这就是我遇到问题的地方。我试图使用Wordpress的“添加图像大小”功能来实现这个功能,但我一直得到精确尺寸的裁剪。 例如,我使用以下代码,它为我提供了一个精确的300x300像素图像: 我甚至尝试将硬裁剪值添加到
谁来帮我解决一下这个问题。因为这个问题我已经卡了3天了-_-! 我可以使listview与图像和文本使用凌空库,它的作品在模拟器(我使用geny运动模拟器)的图像和文本显示。但是当我在我的设备(Android果冻4.3.0)中运行它时,listview是空的。层是空白的(空的)。我不知道为什么。 这是我的片段代码 我确定 URL 很好,并且图像返回 http://192.168.117.1:808
英文原文:http://emberjs.com/guides/views/defining-a-view/ 你可以使用Ember.View来渲染一个Handlebars模板并将它插入到DOM中。 为了告诉视图要用哪个模板,可以设置它的temaplateName属性。例如,如果我有一个像这样的<script>标签: 1 2 3 4 5 6 7 <html> <head> <script