sim, mas pra isso existe diversos modos de redimensionar as telas, onte mesmo deu trabalho mas fiz uma tela que se comporta igual em diversos modelos, testem em uam z3 motorola, um da samsung, e uma palm, ambos ficaram iguals e ambos tem telas diferentes, o que mais deu trabalho foi o palm, pois ele é deferente das telas dos celulares, pois enquanto a maioria dos celulares possui o numero de linhas maiores que o numero de colunas, o lam é diferente ele tem o numero de colunas maiores que os de linha, e sempre ficava desalinhada a tela de login que fiz, recebendo o que estava digitado e exibindo na tela com um textfield feito por mim tb, o negocio é tentar e usar todos os metodos de canvas ai vc vai pegando o jeito.
é muito dificil te passar uma maneira de fazer isso ou aquilo, usando canvas vc tem total liberdade de fazer o que vc quiser, então o que te recomendo é realmente treinar e estudar, eu mesmo to começando tb, mas já estou indo bem.
quando sua aplicação ficar lenta, tente ver se vc não esta repetindo alguns passos, como alocar imagem, setando metodos desnecessários e outros, eu mesmo estava cometendo um erro que era criar a imagem dentro do metodo paint(); desta forma toda vez que a tela fosse pintada ele pegava a imagem alocava na variavel para que eu utliza-se, ai depois me toquei do que tava errado, tirando este codigo de dentro do paint()… e colocando no contrutar, o desempenho melhorou e muito.